Compare commits
No commits in common. "main" and "bcachefs-update-broken-queen" have entirely different histories.
main
...
bcachefs-u
170 changed files with 4342 additions and 7649 deletions
1
.envrc
Normal file
1
.envrc
Normal file
|
|
@ -0,0 +1 @@
|
|||
use flake "git+https://git.lillianviolet.dev/Lillian-Violet/dev-templates.git?dir=nix"
|
||||
21
README.md
21
README.md
|
|
@ -18,11 +18,11 @@ if you don't want to use [sops](https://github.com/Mic92/sops-nix) secret manage
|
|||
Upon any of the above changes; also remove/replace the secret files, they can be found under the host configuration folders in
|
||||
``hosts/<hostname>/secrets/sops.yaml``
|
||||
|
||||
For the hosts EDI and GLaDOS, [lanzaboote](https://github.com/nix-community/lanzaboote) has to be disabled (and re-enabled if you want secure boot after install). You can first replace enabling lanzaboot with systemd-boot. You can do this by commenting out the lanzaboote configuration, and replace the line
|
||||
For the hosts EDI and GLaDOS, [lanzaboot](https://github.com/nix-community/lanzaboote) has to be disabled (and re-enabled if you want secure boot after install). You can first replace enabling lanzaboot with systemd-boot. You can do this by commenting out the lanzaboot configuration, and replace the line
|
||||
|
||||
``boot.loader.systemd-boot.enable = lib.mkForce false;`` with ``boot.loader.systemd-boot.enable = true``
|
||||
|
||||
To turn secure boot back on again you can look at the [lanzaboote](https://github.com/nix-community/lanzaboote) repository and follow the install steps.
|
||||
To turn secure boot back on again you can look at the [lanzaboot](https://github.com/nix-community/lanzaboote) repository and follow the install steps.
|
||||
|
||||
Then run this command with your cloned github repo (I put mine in /etc/nixos):
|
||||
|
||||
|
|
@ -46,22 +46,8 @@ To test if your build succeeds the basic checks and can start building the artif
|
|||
|
||||
Note: this does not build the full configuration, and errors might still happen in deployment, especially for dependencies that rely on external services like webservers to be called. For obvious reasons the test building does not actually pull in all the artifacts, and does not make external calls aside from to the package files (You will need a built nix store, or a connection to the git repository that hosts your packages, like an internet connection to github, to make the test run)
|
||||
|
||||
## Post installation
|
||||
|
||||
I have made a few commands for post installation (and for an iso installer to use) that make life a bit easier, they are automatically added to the [$PATH](https://en.wikipedia.org/wiki/PATH_(variable)). The commands will automatically inhibit sleep and standby so you don't have to worry about them getting interrupted.
|
||||
| Command | Effect |
|
||||
| ------------- | ------------- |
|
||||
| rebuild | Use the latest version of the repo and do a nixos-rebuild switch on it to upgrade your system. |
|
||||
| update | Update the flake lock in the repo, run a test to see if nothing breaks, and then push the flake lock update done to the repo. |
|
||||
| upgrade | Run update and rebuild one after the other, useful for a quick upgrade. |
|
||||
| install | Run a script that automatically lets you select a host to format the disks with disko, install nixos on that disk, and deploy the entire configuration. (useful for instal USBs) |
|
||||
|
||||
## Technical details
|
||||
|
||||
### Project structure
|
||||
|
||||
The project is set up to
|
||||
|
||||
### [Home manager](https://github.com/nix-community/home-manager)
|
||||
Home manager is imported as a module within the global configuration, it is therefor not needed to build home-manager packages separately in this configuration. On multi user systems it might be useful to pull the home-manager configurations from separate repos for different users, so you don't have to give your users access to the global configuration.
|
||||
|
||||
|
|
@ -71,6 +57,3 @@ The secrets are managed in sops files within the hosts folders, there is only on
|
|||
``nix-shell -p sops --run "sops ./nixos/hosts/<hostname>/secrets/sops.yaml"``
|
||||
|
||||
This requires your system to have the keyfile available for sops to use, by default sops looks in the sops/age folder in your user folder for a keys.txt file with the private key. You can change this behaviour by setting the **\$SOPS_AGE_KEY_FILE** environment variable, or setting the **\$SOPS_AGE_KEY** environment variable to the key itself.
|
||||
|
||||
### [Just](https://github.com/casey/just)
|
||||
This repo uses just as a command runner for setting up and building the nixos files more easily. The programs needed to run all the commands are nix, just, and nom (nix output monitor). The commands you can use can be found in the justfile (named justfile in the root of this repo). This is purely for convenience, it doesn't add anything you could not manually do, it just automates a lot of steps.
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
size = "100%FREE";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "ext4";
|
||||
format = "bcachefs";
|
||||
mountpoint = "/";
|
||||
mountOptions = [
|
||||
"defaults"
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
disko.devices = {
|
||||
disk = {
|
||||
main = {
|
||||
sda1 = {
|
||||
type = "disk";
|
||||
device = "/dev/disk/by-path/pci-0000:01:00.0-nvme-1";
|
||||
device = "/dev/disk/by-path/pci-0000:06:00.0-ata-6";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
|
|
@ -14,14 +14,16 @@
|
|||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
mountOptions = ["umask=0077"];
|
||||
mountOptions = [
|
||||
"defaults"
|
||||
];
|
||||
};
|
||||
};
|
||||
nvme_luks = {
|
||||
luks = {
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "luks";
|
||||
name = "nvme_crypted";
|
||||
name = "crypted";
|
||||
extraOpenArgs = [];
|
||||
settings = {
|
||||
# if you want to use the key for interactive login be sure there is no trailing newline
|
||||
|
|
@ -29,35 +31,10 @@
|
|||
#keyFile = "/tmp/secret.key";
|
||||
allowDiscards = true;
|
||||
};
|
||||
#additionalKeyFiles = ["/tmp/additionalSecret.key"];
|
||||
content = {
|
||||
type = "btrfs";
|
||||
extraArgs = ["-f"];
|
||||
subvolumes = {
|
||||
"/root" = {
|
||||
mountpoint = "/";
|
||||
mountOptions = ["subvol=root" "compress=zstd:1" "noatime" "ssd" "discard=async" "space_cache=v2" "commit=120"];
|
||||
};
|
||||
"/home" = {
|
||||
mountpoint = "/home";
|
||||
mountOptions = ["subvol=home" "compress=zstd:1" "noatime" "ssd" "discard=async" "space_cache=v2" "commit=120" "autodefrag"];
|
||||
};
|
||||
"/nix" = {
|
||||
mountpoint = "/nix";
|
||||
mountOptions = ["subvol=nix" "compress=zstd:1" "noatime" "ssd" "discard=async" "space_cache=v2" "commit=120" "nodatacow" "nodatasum"];
|
||||
};
|
||||
"/persist" = {
|
||||
mountpoint = "/persistent";
|
||||
mountOptions = ["subvol=persistent" "compress=zstd:1" "noatime" "ssd" "discard=async" "space_cache=v2" "commit=120"];
|
||||
};
|
||||
"/log" = {
|
||||
mountpoint = "/var/log";
|
||||
mountOptions = ["subvol=log" "compress=zstd:1" "noatime" "ssd" "discard=async" "space_cache=v2" "commit=120" "nodatacow" "nodatasum"];
|
||||
};
|
||||
"/swap" = {
|
||||
mountpoint = "/swap";
|
||||
swap.swapfile.size = "8G";
|
||||
};
|
||||
};
|
||||
type = "lvm_pv";
|
||||
vg = "pool";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -65,12 +42,36 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
lvm_vg = {
|
||||
pool = {
|
||||
type = "lvm_vg";
|
||||
lvs = {
|
||||
swap = {
|
||||
size = "16G";
|
||||
content = {
|
||||
type = "swap";
|
||||
resumeDevice = true; # resume from hiberation from this device
|
||||
};
|
||||
};
|
||||
root = {
|
||||
size = "100%FREE";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "bcachefs";
|
||||
mountpoint = "/";
|
||||
mountOptions = [
|
||||
"defaults"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
nodev = {
|
||||
"/home/lillian/Downloads" = {
|
||||
fsType = "tmpfs";
|
||||
mountOptions = [
|
||||
"size=4G"
|
||||
"uid=1000"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,47 +0,0 @@
|
|||
{
|
||||
disko = {
|
||||
devices = {
|
||||
disk = {
|
||||
disk1 = {
|
||||
imageSize = "20G";
|
||||
type = "disk";
|
||||
device = "/dev/mmcblk0";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
firmware = {
|
||||
size = "30M";
|
||||
priority = 1;
|
||||
type = "0700";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/firmware";
|
||||
};
|
||||
};
|
||||
boot = {
|
||||
size = "1G";
|
||||
type = "EF00";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
};
|
||||
};
|
||||
root = {
|
||||
name = "root";
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
extraArgs = [];
|
||||
format = "ext4";
|
||||
mountpoint = "/";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
1612
flake.lock
generated
1612
flake.lock
generated
File diff suppressed because it is too large
Load diff
249
flake.nix
249
flake.nix
|
|
@ -13,11 +13,11 @@
|
|||
disko.url = "github:nix-community/disko";
|
||||
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
# bcachefs-tools = {
|
||||
# url = "github:koverstreet/bcachefs-tools";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
# inputs.flake-parts.follows = "flake-parts";
|
||||
# };
|
||||
bcachefs-tools = {
|
||||
url = "github:koverstreet/bcachefs-tools";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.flake-parts.follows = "flake-parts";
|
||||
};
|
||||
|
||||
flake-parts = {
|
||||
url = "github:hercules-ci/flake-parts"; # Flake parts for easy flake management
|
||||
|
|
@ -33,7 +33,11 @@
|
|||
# catpuccin theme
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
|
||||
# Conduwuit fork after it shut down
|
||||
# Conduit fork without all the fuss and drama
|
||||
conduwuit = {
|
||||
url = "github:girlbossceo/conduwuit";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Nix index database files
|
||||
nix-index-database.url = "github:nix-community/nix-index-database";
|
||||
|
|
@ -70,21 +74,29 @@
|
|||
|
||||
zjstatus.url = "github:dj95/zjstatus";
|
||||
|
||||
# preservation
|
||||
preservation.url = "github:nix-community/preservation";
|
||||
|
||||
# Fix for steam cursor not being visible under wayland
|
||||
|
||||
# Add any other flake you might need
|
||||
# hardware.url = "github:nixos/nixos-hardware";
|
||||
# Stylix theming engine
|
||||
stylix.url = "github:nix-community/stylix";
|
||||
};
|
||||
nixConfig = {
|
||||
extra-substituters = [
|
||||
"https://nix-community.cachix.org"
|
||||
"https://nixpkgs-unfree.cachix.org"
|
||||
"https://0uptime.cachix.org"
|
||||
"https://cache.lix.systems"
|
||||
];
|
||||
extra-trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"nixpkgs-unfree.cachix.org-1:hqvoInulhbV4nJ9yJOEr+4wxhDV4xq2d1DK7S6Nj6rs="
|
||||
"0uptime.cachix.org-1:ctw8yknBLg9cZBdqss+5krAem0sHYdISkw/IFdRbYdE="
|
||||
"cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
|
||||
];
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
nixpkgs-edge,
|
||||
nixos-generators,
|
||||
catppuccin,
|
||||
|
|
@ -98,22 +110,14 @@
|
|||
jovian,
|
||||
nixos-hardware,
|
||||
nix-index-database,
|
||||
preservation,
|
||||
stylix,
|
||||
conduit,
|
||||
...
|
||||
} @ inputs: let
|
||||
supportedSystems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
|
||||
forEachSupportedSystem = f:
|
||||
nixpkgs.lib.genAttrs supportedSystems (system:
|
||||
f {
|
||||
pkgs = import nixpkgs {inherit system;};
|
||||
});
|
||||
inherit (self) outputs;
|
||||
inherit (inputs) nixpkgs-edge;
|
||||
# Supported systems for your flake packages, shell, etc.
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
# This is a function that generates an attribute by calling a function you
|
||||
# pass to it, with each system as an argument
|
||||
|
|
@ -125,42 +129,7 @@
|
|||
allowUnfreePredicate = _: true;
|
||||
};
|
||||
};
|
||||
|
||||
sharedModules = [
|
||||
./nixos/shared
|
||||
sops-nix.nixosModules.sops
|
||||
disko.nixosModules.disko
|
||||
home-manager.nixosModules.home-manager
|
||||
catppuccin.nixosModules.catppuccin
|
||||
stylix.nixosModules.stylix
|
||||
nix-index-database.nixosModules.nix-index
|
||||
preservation.nixosModules.preservation
|
||||
{programs.nix-index-database.comma.enable = true;}
|
||||
{
|
||||
home-manager.sharedModules = [
|
||||
catppuccin.homeModules.catppuccin
|
||||
./home-manager/shared
|
||||
sops-nix.homeManagerModules.sops
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
desktopModules = [
|
||||
./nixos/desktop
|
||||
{
|
||||
home-manager.sharedModules = [
|
||||
inputs.plasma-manager.homeModules.plasma-manager
|
||||
./home-manager/desktop
|
||||
];
|
||||
}
|
||||
];
|
||||
in {
|
||||
devShells = forEachSupportedSystem ({pkgs}: {
|
||||
default = pkgs.mkShell {
|
||||
packages = with pkgs; [nom just git];
|
||||
};
|
||||
});
|
||||
|
||||
# Your custom packages
|
||||
# Accessible through 'nix build', 'nix shell', etc
|
||||
packages = forAllSystems (system:
|
||||
|
|
@ -177,7 +146,7 @@
|
|||
nixosModules = import ./modules/nixos;
|
||||
# Reusable home-manager modules you might want to export
|
||||
# These are usually stuff you would upstream into home-manager
|
||||
# homeManagerModules = import ./modules/home-manager;
|
||||
homeManagerModules = import ./modules/home-manager;
|
||||
|
||||
# Your custom packages and modifications, exported as overlays
|
||||
overlays = import ./overlays {inherit inputs;};
|
||||
|
|
@ -185,89 +154,131 @@
|
|||
# NixOS configuration entrypoint
|
||||
# Available through 'nixos-rebuild --flake .#your-hostname'
|
||||
nixosConfigurations = {
|
||||
# nixIso = nixpkgs.lib.nixosSystem {
|
||||
# system = "x86_64-linux";
|
||||
# specialArgs = {inherit inputs outputs;};
|
||||
# modules =
|
||||
# sharedModules
|
||||
# ++ desktopModules
|
||||
# ++ [
|
||||
# ./nixos/hosts/iso/configuration.nix
|
||||
# "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-base.nix"
|
||||
# ];
|
||||
# };
|
||||
|
||||
EDI = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs outputs;};
|
||||
modules =
|
||||
sharedModules
|
||||
++ desktopModules
|
||||
++ [
|
||||
{_module.args = {inherit pkgs-edge;};}
|
||||
nixos-hardware.nixosModules.dell-xps-13-7390
|
||||
lanzaboote.nixosModules.lanzaboote
|
||||
# > Our main nixos configuration file <
|
||||
./nixos/hosts/EDI/configuration.nix
|
||||
];
|
||||
modules = [
|
||||
{_module.args = {inherit pkgs-edge;};}
|
||||
nixos-hardware.nixosModules.dell-xps-13-7390
|
||||
# > Our main nixos configuration file <
|
||||
./nixos/hosts/EDI/configuration.nix
|
||||
sops-nix.nixosModules.sops
|
||||
lanzaboote.nixosModules.lanzaboote
|
||||
disko.nixosModules.disko
|
||||
home-manager.nixosModules.home-manager
|
||||
nix-index-database.nixosModules.nix-index
|
||||
catppuccin.nixosModules.catppuccin
|
||||
{
|
||||
home-manager.sharedModules = [
|
||||
inputs.catppuccin.homeManagerModules.catppuccin
|
||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
GLaDOS = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs outputs;};
|
||||
modules =
|
||||
sharedModules
|
||||
++ desktopModules
|
||||
++ [
|
||||
{_module.args = {inherit pkgs-edge;};}
|
||||
# > Our main nixos configuration file <
|
||||
./nixos/hosts/GLaDOS/configuration.nix
|
||||
lanzaboote.nixosModules.lanzaboote
|
||||
];
|
||||
modules = [
|
||||
{_module.args = {inherit pkgs-edge;};}
|
||||
# > Our main nixos configuration file <
|
||||
./nixos/hosts/GLaDOS/configuration.nix
|
||||
sops-nix.nixosModules.sops
|
||||
#lanzaboote.nixosModules.lanzaboote
|
||||
disko.nixosModules.disko
|
||||
home-manager.nixosModules.home-manager
|
||||
nix-index-database.nixosModules.nix-index
|
||||
catppuccin.nixosModules.catppuccin
|
||||
{
|
||||
home-manager.sharedModules = [
|
||||
inputs.catppuccin.homeManagerModules.catppuccin
|
||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
queen = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs outputs;};
|
||||
modules =
|
||||
sharedModules
|
||||
++ [
|
||||
{_module.args = {inherit pkgs-edge;};}
|
||||
simple-nixos-mailserver.nixosModule
|
||||
# > Our main nixos configuration file <
|
||||
./nixos/hosts/queen/configuration.nix
|
||||
];
|
||||
modules = [
|
||||
{_module.args = {inherit pkgs-edge;};}
|
||||
# > Our main nixos configuration file <
|
||||
./nixos/hosts/queen/configuration.nix
|
||||
sops-nix.nixosModules.sops
|
||||
disko.nixosModules.disko
|
||||
simple-nixos-mailserver.nixosModule
|
||||
catppuccin.nixosModules.catppuccin
|
||||
{
|
||||
home-manager.sharedModules = [
|
||||
inputs.catppuccin.homeManagerModules.catppuccin
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
shodan = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs outputs;};
|
||||
modules =
|
||||
sharedModules
|
||||
++ desktopModules
|
||||
++ [
|
||||
{_module.args = {inherit pkgs-edge;};}
|
||||
# > Our main nixos configuration file <
|
||||
./nixos/hosts/shodan/configuration.nix
|
||||
lanzaboote.nixosModules.lanzaboote
|
||||
jovian.nixosModules.jovian
|
||||
{
|
||||
home-manager.sharedModules = [
|
||||
inputs.plasma-manager.homeModules.plasma-manager
|
||||
];
|
||||
}
|
||||
];
|
||||
modules = [
|
||||
{_module.args = {inherit pkgs-edge;};}
|
||||
# > Our main nixos configuration file <
|
||||
./nixos/hosts/shodan/configuration.nix
|
||||
sops-nix.nixosModules.sops
|
||||
lanzaboote.nixosModules.lanzaboote
|
||||
disko.nixosModules.disko
|
||||
jovian.nixosModules.jovian
|
||||
home-manager.nixosModules.home-manager
|
||||
catppuccin.nixosModules.catppuccin
|
||||
{
|
||||
home-manager.sharedModules = [
|
||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
||||
inputs.catppuccin.homeManagerModules.catppuccin
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
wheatley = nixpkgs.lib.nixosSystem {
|
||||
system = "aarch64-linux";
|
||||
ISO = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs outputs;};
|
||||
modules =
|
||||
sharedModules
|
||||
++ [
|
||||
{_module.args = {inherit pkgs-edge;};}
|
||||
./nixos/hosts/wheatley/configuration.nix
|
||||
];
|
||||
modules = [
|
||||
{_module.args = {inherit pkgs-edge;};}
|
||||
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix"
|
||||
"${nixpkgs}/nixos/modules/installer/cd-dvd/channel.nix"
|
||||
./nixos/hosts/iso/configuration.nix
|
||||
sops-nix.nixosModules.sops
|
||||
home-manager.nixosModules.home-manager
|
||||
nix-index-database.nixosModules.nix-index
|
||||
catppuccin.nixosModules.catppuccin
|
||||
{
|
||||
home-manager.sharedModules = [
|
||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
||||
inputs.catppuccin.homeManagerModules.catppuccin
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
iso_server = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs outputs;};
|
||||
modules = [
|
||||
{_module.args = {inherit pkgs-edge;};}
|
||||
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"
|
||||
"${nixpkgs}/nixos/modules/installer/cd-dvd/channel.nix"
|
||||
./nixos/hosts/iso_server/configuration.nix
|
||||
sops-nix.nixosModules.sops
|
||||
home-manager.nixosModules.home-manager
|
||||
nix-index-database.nixosModules.nix-index
|
||||
catppuccin.nixosModules.catppuccin
|
||||
{
|
||||
home-manager.sharedModules = [
|
||||
inputs.catppuccin.homeManagerModules.catppuccin
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
|
|
@ -13,12 +16,10 @@
|
|||
|
||||
# You can also split up your configuration and import pieces of it here:
|
||||
# ./nvim.nix
|
||||
./package-configs/plasma-desktop
|
||||
./package-configs/firefox
|
||||
./package-configs/plasma-desktop.nix
|
||||
./package-configs/firefox.nix
|
||||
./package-configs/konsole
|
||||
./package-configs/foot
|
||||
./package-configs/freetube
|
||||
./package-configs/vesktop
|
||||
];
|
||||
nixpkgs = {
|
||||
# You can add overlays here
|
||||
|
|
@ -32,240 +33,174 @@
|
|||
# patches = [ ./change-hello-to-hi.patch ];
|
||||
# });
|
||||
# })
|
||||
# (final: prev: {
|
||||
# catppuccin-vsc = final.catppuccin-vsc.overrideAttrs (oldAttrs: {
|
||||
# accent = "mauve";
|
||||
# boldKeywords = true;
|
||||
# italicComments = true;
|
||||
# italicKeywords = true;
|
||||
# extraBordersEnabled = false;
|
||||
# workbenchMode = "default";
|
||||
# bracketMode = "rainbow";
|
||||
# colorOverrides = {};
|
||||
# customUIColors = {};
|
||||
# });
|
||||
# })
|
||||
# (final: prev: {
|
||||
# catppuccin-vsc = final.catppuccin-vsc.overrideAttrs (oldAttrs: {
|
||||
# accent = "mauve";
|
||||
# boldKeywords = true;
|
||||
# italicComments = true;
|
||||
# italicKeywords = true;
|
||||
# extraBordersEnabled = false;
|
||||
# workbenchMode = "default";
|
||||
# bracketMode = "rainbow";
|
||||
# colorOverrides = {};
|
||||
# customUIColors = {};
|
||||
# });
|
||||
# })
|
||||
(final: prev: {
|
||||
catppuccin-vsc = final.catppuccin-vsc.overrideAttrs (oldAttrs: {
|
||||
accent = "mauve";
|
||||
boldKeywords = true;
|
||||
italicComments = true;
|
||||
italicKeywords = true;
|
||||
extraBordersEnabled = false;
|
||||
workbenchMode = "default";
|
||||
bracketMode = "rainbow";
|
||||
colorOverrides = {};
|
||||
customUIColors = {};
|
||||
});
|
||||
})
|
||||
(final: prev: {
|
||||
catppuccin-vsc = final.catppuccin-vsc.overrideAttrs (oldAttrs: {
|
||||
accent = "mauve";
|
||||
boldKeywords = true;
|
||||
italicComments = true;
|
||||
italicKeywords = true;
|
||||
extraBordersEnabled = false;
|
||||
workbenchMode = "default";
|
||||
bracketMode = "rainbow";
|
||||
colorOverrides = {};
|
||||
customUIColors = {};
|
||||
});
|
||||
})
|
||||
];
|
||||
# Configure your nixpkgs instance
|
||||
config = {
|
||||
# Configure your nixpkgs instance
|
||||
|
||||
# Disable if you don't want unfree packages
|
||||
allowUnfree = true;
|
||||
};
|
||||
};
|
||||
systemd.user = {
|
||||
# services."nextcloud-autosync@" = {
|
||||
# Unit = {
|
||||
# Description = "Auto sync Nextcloud";
|
||||
# After = "network-online.target";
|
||||
# PartOf = ["nextcloud-autosyncs.target"];
|
||||
# };
|
||||
# Service = {
|
||||
# Type = "simple";
|
||||
# ExecStart = "${pkgs.nextcloud-client}/bin/nextcloudcmd -h -n --path /%i /home/lillian/%i https://nextcloud.gladtherescake.eu";
|
||||
# TimeoutStopSec = "180";
|
||||
# KillMode = "process";
|
||||
# KillSignal = "SIGINT";
|
||||
# };
|
||||
# Install.WantedBy = ["multi-user.target"];
|
||||
# };
|
||||
# targets.nextcloud-autosyncs = {
|
||||
# Unit = {
|
||||
# Description = "workers";
|
||||
# Requires = ["nextcloud-autosync@Music" "nextcloud-autosync@Pictures" "nextcloud-autosync@Scripts" "nextcloud-autosync@Videos" "nextcloud-autosync@Documents"];
|
||||
# PartOf = "nextcloud-autosyncs.target";
|
||||
# };
|
||||
# Install.WantedBy = ["multi-user.target"];
|
||||
# };
|
||||
# timers.nextcloud-autosyncs = {
|
||||
# Unit.Description = "Automatic sync files with Nextcloud when booted up after 5 minutes then rerun every 60 minutes";
|
||||
# Timer.OnBootSec = "5min";
|
||||
# Timer.OnUnitActiveSec = "60min";
|
||||
# Install.WantedBy = ["multi-user.target" "timers.target"];
|
||||
# };
|
||||
|
||||
# Nicely reload system units when changing configs
|
||||
startServices = "sd-switch";
|
||||
};
|
||||
|
||||
home = {
|
||||
username = "lillian";
|
||||
homeDirectory = "/home/lillian";
|
||||
};
|
||||
|
||||
file = {
|
||||
Music = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Music";
|
||||
target = "Music";
|
||||
};
|
||||
Pictures = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Pictures";
|
||||
target = "Pictures";
|
||||
};
|
||||
Screenshots = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Pictures/Screenshots";
|
||||
target = "Screenshots";
|
||||
};
|
||||
Scripts = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Scripts";
|
||||
target = "Scripts";
|
||||
};
|
||||
Videos = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Videos";
|
||||
target = "Videos";
|
||||
};
|
||||
Documents = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Documents";
|
||||
target = "Documents";
|
||||
};
|
||||
floorp = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/.mozilla/firefox";
|
||||
target = ".floorp";
|
||||
};
|
||||
librewolf = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/.mozilla/firefox";
|
||||
target = ".librewolf";
|
||||
};
|
||||
steam = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/.local/share/Steam/";
|
||||
target = "Steam";
|
||||
};
|
||||
# instances = {
|
||||
# source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/instances";
|
||||
# target = ".local/share/PrismLauncher/instances";
|
||||
# force = true;
|
||||
# };
|
||||
};
|
||||
# Add stuff for your user as you see fit:
|
||||
# programs.neovim.enable = true;
|
||||
# home.packages = with pkgs; [ steam ];
|
||||
|
||||
# Add stuff for your user as you see fit:
|
||||
# programs.neovim.enable = true;
|
||||
# home.packages = with pkgs; [ steam ];
|
||||
home.packages = with pkgs; [
|
||||
# Coding:
|
||||
direnv
|
||||
git
|
||||
git-credential-manager
|
||||
git-credential-manager
|
||||
ruff
|
||||
kate
|
||||
|
||||
packages = with pkgs; [
|
||||
# Coding:
|
||||
direnv
|
||||
git
|
||||
git-credential-manager
|
||||
ruff
|
||||
# Chat applications:
|
||||
signal-desktop
|
||||
webcord-vencord
|
||||
|
||||
# Chat applications:
|
||||
signal-desktop
|
||||
vesktop
|
||||
# cinny-desktop
|
||||
# Gaming:
|
||||
prismlauncher
|
||||
steam
|
||||
|
||||
# Gaming:
|
||||
prismlauncher
|
||||
heroic
|
||||
# Multimedia:
|
||||
freetube
|
||||
vlc
|
||||
|
||||
# Multimedia:
|
||||
vlc
|
||||
fcast-receiver
|
||||
fcast-client
|
||||
# Office applications:
|
||||
onlyoffice-bin
|
||||
gimp
|
||||
thunderbird
|
||||
|
||||
# Office applications:
|
||||
onlyoffice-desktopeditors
|
||||
gimp
|
||||
thunderbird
|
||||
# System tools:
|
||||
rage
|
||||
flameshot
|
||||
fzf
|
||||
nextcloud-client
|
||||
nitrokey-app
|
||||
protonvpn-gui
|
||||
virtualbox
|
||||
watchmate
|
||||
qbittorrent
|
||||
|
||||
# System tools:
|
||||
rage
|
||||
flameshot
|
||||
fzf
|
||||
nextcloud-client
|
||||
# nitrokey-app
|
||||
# protonvpn-gui
|
||||
virtualbox
|
||||
#watchmate
|
||||
qbittorrent
|
||||
# Theming:
|
||||
catppuccin-cursors
|
||||
(catppuccin-kde.override {
|
||||
flavour = ["macchiato"];
|
||||
accents = ["mauve"];
|
||||
})
|
||||
catppuccin-sddm-corners
|
||||
|
||||
# Web browsing:
|
||||
firefoxpwa
|
||||
ungoogled-chromium
|
||||
# Theming:
|
||||
catppuccin-cursors
|
||||
(catppuccin-kde.override {
|
||||
flavour = ["macchiato"];
|
||||
accents = ["mauve"];
|
||||
})
|
||||
catppuccin-sddm-corners
|
||||
|
||||
# Web browsing:
|
||||
firefoxpwa
|
||||
firefoxpwa
|
||||
ungoogled-chromium
|
||||
];
|
||||
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
catppuccin.catppuccin-vsc
|
||||
catppuccin.catppuccin-vsc-icons
|
||||
catppuccin.catppuccin-vsc
|
||||
catppuccin.catppuccin-vsc-icons
|
||||
charliermarsh.ruff
|
||||
eamodio.gitlens
|
||||
github.vscode-pull-request-github
|
||||
jnoortheen.nix-ide
|
||||
kamadorueda.alejandra
|
||||
mkhl.direnv
|
||||
ms-toolsai.jupyter
|
||||
ms-pyright.pyright
|
||||
ms-python.black-formatter
|
||||
ms-python.vscode-pylance
|
||||
ms-vscode-remote.remote-ssh
|
||||
oderwat.indent-rainbow
|
||||
rust-lang.rust-analyzer
|
||||
yzhang.markdown-all-in-one
|
||||
];
|
||||
};
|
||||
programs = {
|
||||
# vscode = {
|
||||
# enable = true;
|
||||
# package = pkgs.vscodium;
|
||||
# extensions = with pkgs.vscode-extensions; [
|
||||
# catppuccin.catppuccin-vsc
|
||||
# catppuccin.catppuccin-vsc-icons
|
||||
# charliermarsh.ruff
|
||||
# eamodio.gitlens
|
||||
# github.vscode-pull-request-github
|
||||
# jnoortheen.nix-ide
|
||||
# kamadorueda.alejandra
|
||||
# mkhl.direnv
|
||||
# ms-toolsai.jupyter
|
||||
# ms-pyright.pyright
|
||||
# oderwat.indent-rainbow
|
||||
# rust-lang.rust-analyzer
|
||||
# yzhang.markdown-all-in-one
|
||||
# ];
|
||||
# };
|
||||
|
||||
chromium = {
|
||||
extensions = [
|
||||
{id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";}
|
||||
];
|
||||
};
|
||||
|
||||
obs-studio.enable = true;
|
||||
obs-studio.plugins = with pkgs.obs-studio-plugins; [
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
wlrobs
|
||||
obs-backgroundremoval
|
||||
obs-pipewire-audio-capture
|
||||
];
|
||||
};
|
||||
|
||||
# Enable home-manager and git
|
||||
home-manager.enable = true;
|
||||
git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "Lillian-Violet";
|
||||
email = "git@lillianviolet.dev";
|
||||
};
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
# Enable home-manager and git
|
||||
programs.home-manager.enable = true;
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userEmail = "git@lillianviolet.dev";
|
||||
userName = "Lillian-Violet";
|
||||
extraConfig = {
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
ignores = [
|
||||
"*.direnv"
|
||||
"*.vscode"
|
||||
".envrc"
|
||||
"venv"
|
||||
"venv"
|
||||
];
|
||||
signing.format = "ssh";
|
||||
};
|
||||
ignores = [
|
||||
"*.direnv"
|
||||
"*.vscode"
|
||||
".envrc"
|
||||
"venv"
|
||||
"venv"
|
||||
];
|
||||
};
|
||||
|
||||
gpg.enable = true;
|
||||
gpg.settings = {
|
||||
default-key = "0d43 5407 034c 2ad9 2d42 799d 280e 061d ff60 0f0d";
|
||||
default-recipient-self = true;
|
||||
auto-key-locate = "local,wkd,keyserver";
|
||||
keyserver = "hkps://keys.openpgp.org";
|
||||
auto-key-retrieve = true;
|
||||
auto-key-import = true;
|
||||
keyserver-options = "honor-keyserver-url";
|
||||
no-autostart = true;
|
||||
};
|
||||
};
|
||||
services = {
|
||||
kdeconnect.package = pkgs.kdePackages.kdeconnect-kde;
|
||||
kdeconnect.enable = true;
|
||||
programs.gpg.enable = true;
|
||||
programs.gpg.settings = {
|
||||
default-key = "0d43 5407 034c 2ad9 2d42 799d 280e 061d ff60 0f0d";
|
||||
default-recipient-self = true;
|
||||
auto-key-locate = "local,wkd,keyserver";
|
||||
keyserver = "hkps://keys.openpgp.org";
|
||||
auto-key-retrieve = true;
|
||||
auto-key-import = true;
|
||||
keyserver-options = "honor-keyserver-url";
|
||||
no-autostart = true;
|
||||
};
|
||||
|
||||
# Nicely reload system units when changing configs
|
||||
systemd.user.startServices = "sd-switch";
|
||||
}
|
||||
|
|
|
|||
395
home-manager/desktop/package-configs/firefox.nix
Normal file
395
home-manager/desktop/package-configs/firefox.nix
Normal file
|
|
@ -0,0 +1,395 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
nativeMessagingHosts = [pkgs.firefoxpwa];
|
||||
package = pkgs.firefox;
|
||||
profiles.lillian = {
|
||||
isDefault = true;
|
||||
settings = {
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"browser.bookmarks.addedImportButton" = true;
|
||||
"browser.bookmarks.restore_default_bookmarks" = false;
|
||||
"browser.bookmarks.showMobileBookmarks" = true;
|
||||
"browser.ctrlTab.sortByRecentlyUsed" = true;
|
||||
"browser.discovery.enabled" = false;
|
||||
"browser.download.panel.shown" = true;
|
||||
"browser.firefox-view.feature-tour" = "{\"message\":\"FIREFOX_VIEW_FEATURE_TOUR\",\"screen\":\"\",\"complete\":true}";
|
||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||
"browser.pageActions.persistedActions" = ''{"ids":["bookmark","_3c078156-979c-498b-8990-85f7987dd929_","firefoxpwa_filips_si"],"idsInUrlbar":["_3c078156-979c-498b-8990-85f7987dd929_","firefoxpwa_filips_si","bookmark"],"idsInUrlbarPreProton":[],"version":1}'';
|
||||
"browser.search.region" = "NL";
|
||||
"browser.uiCustomization.state" = ''{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":["jid1-mnnxcxisbpnsxq_jetpack-browser-action","firefoxpwa_filips_si-browser-action","ubo-scope_raymondhill_net-browser-action","treestyletab_piro_sakura_ne_jp-browser-action","wayback_machine_mozilla_org-browser-action","plasma-browser-integration_kde_org-browser-action","kde-connect_0xc0dedbad_com-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","bibitnow018_aqpl_mc2_chalmers_se-browser-action","_09b14d46-21c3-4a7d-b244-e756f497935b_-browser-action","_7fc8ef53-24ec-4205-87a4-1e745953bb0d_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_800215d6-eff0-4a62-9268-09857c048030_-browser-action","_b3e677f4-1150-4387-8629-da738260a48e_-browser-action","_d133e097-46d9-4ecc-9903-fa6a722a6e0e_-browser-action","myallychou_gmail_com-browser-action","_b7f9d2cd-d772-4302-8c3f-eb941af36f76_-browser-action","_cca112bb-1ca6-4593-a2f1-38d808a19dda_-browser-action","gdpr_cavi_au_dk-browser-action","_54da8dcf-a015-4c80-bbb4-db7f226ac7bd_-browser-action","jid1-om7ejgwa1u8akg_jetpack-browser-action","_7c1aa46e-b74f-4325-95d2-84c07d19cdce_-browser-action","_3c078156-979c-498b-8990-85f7987dd929_-browser-action","7esoorv3_alefvanoon_anonaddy_me-browser-action","_15b1b2af-e84a-4c70-ac7c-5608b0eeed5a_-browser-action","_b9db16a4-6edc-47ec-a1f4-b86292ed211d_-browser-action","dontfuckwithpaste_raim_ist-browser-action"],"nav-bar":["back-button","forward-button","stop-reload-button","urlbar-container","customizableui-special-spring2","downloads-button","_testpilot-containers-browser-action","addon_darkreader_org-browser-action","umatrix_raymondhill_net-browser-action","ublock0_raymondhill_net-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_3579f63b-d8ee-424f-bbb6-6d0ce3285e6a_-browser-action","woop-noopscoopsnsxq_jetpack-browser-action","jid1-bofifl9vbdl2zq_jetpack-browser-action","cookieautodelete_kennydo_com-browser-action","addon_simplelogin-browser-action","jid1-aqqsmbyb0a8adg_jetpack-browser-action","unified-extensions-button","reset-pbm-toolbar-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["tabbrowser-tabs","new-tab-button","alltabs-button","_c607c8df-14a7-4f28-894f-29e8722976af_-browser-action"],"PersonalToolbar":["import-button","personal-bookmarks"]},"seen":["save-to-pocket-button","developer-button","treestyletab_piro_sakura_ne_jp-browser-action","addon_darkreader_org-browser-action","_testpilot-containers-browser-action","wayback_machine_mozilla_org-browser-action","plasma-browser-integration_kde_org-browser-action","_c607c8df-14a7-4f28-894f-29e8722976af_-browser-action","kde-connect_0xc0dedbad_com-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","ublock0_raymondhill_net-browser-action","cookieautodelete_kennydo_com-browser-action","bibitnow018_aqpl_mc2_chalmers_se-browser-action","_09b14d46-21c3-4a7d-b244-e756f497935b_-browser-action","_7fc8ef53-24ec-4205-87a4-1e745953bb0d_-browser-action","woop-noopscoopsnsxq_jetpack-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_800215d6-eff0-4a62-9268-09857c048030_-browser-action","_3579f63b-d8ee-424f-bbb6-6d0ce3285e6a_-browser-action","_b3e677f4-1150-4387-8629-da738260a48e_-browser-action","_d133e097-46d9-4ecc-9903-fa6a722a6e0e_-browser-action","jid1-bofifl9vbdl2zq_jetpack-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","myallychou_gmail_com-browser-action","_b7f9d2cd-d772-4302-8c3f-eb941af36f76_-browser-action","umatrix_raymondhill_net-browser-action","_cca112bb-1ca6-4593-a2f1-38d808a19dda_-browser-action","gdpr_cavi_au_dk-browser-action","_54da8dcf-a015-4c80-bbb4-db7f226ac7bd_-browser-action","ubo-scope_raymondhill_net-browser-action","jid1-om7ejgwa1u8akg_jetpack-browser-action","_7c1aa46e-b74f-4325-95d2-84c07d19cdce_-browser-action","_3c078156-979c-498b-8990-85f7987dd929_-browser-action","addon_simplelogin-browser-action","7esoorv3_alefvanoon_anonaddy_me-browser-action","jid1-aqqsmbyb0a8adg_jetpack-browser-action","_15b1b2af-e84a-4c70-ac7c-5608b0eeed5a_-browser-action","firefoxpwa_filips_si-browser-action","_b9db16a4-6edc-47ec-a1f4-b86292ed211d_-browser-action","dontfuckwithpaste_raim_ist-browser-action","jid1-mnnxcxisbpnsxq_jetpack-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","toolbar-menubar","TabsToolbar","unified-extensions-area","widget-overflow-fixed-list"],"currentVersion":20,"newElementCount":14}'';
|
||||
"browser.urlbar.placeholderName" = "DuckDuckGo";
|
||||
"browser.urlbar.placeholderName.private" = "DuckDuckGo";
|
||||
"extensions.webextensions.uuid" = ''{"formautofill@mozilla.org":"ea6a95e0-ef85-453b-afdf-44e57e4ca32c","pictureinpicture@mozilla.org":"41fcca40-5f8a-4182-ace9-e1ff2e6fc210","screenshots@mozilla.org":"8c2c3f97-17a1-4240-b640-c9707e3b917e","webcompat-reporter@mozilla.org":"d2c1a84b-03ff-47c6-92be-a623026b79d9","webcompat@mozilla.org":"bb5b827a-1ad3-40d0-8c16-c7d6db11a62b","default-theme@mozilla.org":"83700f73-6c25-4599-9393-3e071be81fe6","wayback_machine@mozilla.org":"ef76899f-67d6-4ffb-973f-0c198a8369e4","uBlock0@raymondhill.net":"24e7b891-a28c-4555-b072-0ee184115cb4","DontFuckWithPaste@raim.ist":"6dbb9616-e8c9-40ff-a729-01dcd6fe09b4","uBO-Scope@raymondhill.net":"6afd83ed-7f93-41ad-960c-28c5ec5ac9bd","gdpr@cavi.au.dk":"4577a4f9-84e4-400c-a995-9b13640f3620","addon@simplelogin":"e492ff49-9c0e-4c42-ab28-465563e953b9","addons-search-detection@mozilla.com":"63a9d1fb-3c16-4b40-bd69-de186c138c5e","plasma-browser-integration@kde.org":"e655920d-846c-4a72-918e-86ebb25362a6","firefoxpwa@filips.si":"3ce26b62-9349-47cc-beaa-584b0c737979","addon@darkreader.org":"510c480d-7737-47ad-91a0-5b8e8f3745c3","shinigamieyes@shinigamieyes":"8f3b1099-f3b1-4468-915d-60fbfbfda8ce","7esoorv3@alefvanoon.anonaddy.me":"947c1016-2e39-48cd-ae1a-c301a6531d2a","CookieAutoDelete@kennydo.com":"28ccdbbd-d179-472a-8658-ae97d228f958","jid1-MnnxcxisBPnSXQ@jetpack":"f361e1b5-74bf-4073-ae95-245429a12cad","jid1-AQqSMBYb0a8ADg@jetpack":"8f3e6fd5-f009-4d2e-b501-0ec6b18dcf9e","wikipedia@search.mozilla.org":"c615bbc5-9fa2-48ae-a78d-7e5546c1a94e","ddg@search.mozilla.org":"4f7e3183-d053-40f6-b7b2-8f405f033281","{446900e4-71c2-419f-a6a7-df9c091e268b}":"bccbf892-7089-4d89-b886-a667e6fd9a03","{3c078156-979c-498b-8990-85f7987dd929}":"f3f046fa-c1b9-415d-b79b-236109b3926b"}'';
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.searchEngines" = "DuckDuckGo";
|
||||
};
|
||||
userChrome = ''
|
||||
/*
|
||||
Title: Drannex42's FirefoxSidebar / Vertical Tabs
|
||||
Description: Vertical tab design for Firefox with dynamic indentation::
|
||||
Sideberry and TreeStyleTabs (Legacy) themes available!
|
||||
Repository URL: https://github.com/drannex42/FirefoxSidebar
|
||||
Version: 12022.04.17
|
||||
*/
|
||||
|
||||
/*
|
||||
Preferences / Settings ::
|
||||
Use this file to set your preferences this will save them in one place for easier future updating
|
||||
=========================================================================
|
||||
*/
|
||||
|
||||
/*
|
||||
Preferences / Settings
|
||||
Use this file to set your preferences this will save them in one place for easier future updating
|
||||
=========================================================================
|
||||
*/
|
||||
|
||||
:root {
|
||||
--sidebar-width: 50px;
|
||||
--toolbar-height: -12px;
|
||||
--menubar-height: -42px;
|
||||
--sidebar-padding: calc(var(--sidebar-width) + 5px);
|
||||
--toolbar-start-end-padding: 5px !important;
|
||||
|
||||
/* Custom Sidebar/Header Backround ::
|
||||
This sets the background for the other sidebar options (bookmarks, history, in case it is transparent from a theme that is not set up properly
|
||||
*/
|
||||
/* --custom-sidebar-bg: Field; /* Default: Field (Disabled) */
|
||||
--custom-sidebar-header-bg: #000; /* Default: Field (Disabled) */
|
||||
|
||||
/* ====== Extension Settings ====== */
|
||||
|
||||
/* Window Control / Client Side Display Settings ===
|
||||
If you are putting this on the left or right side uncomment the side
|
||||
preferences below and comment the other
|
||||
=========================================================================
|
||||
*/
|
||||
--csd-width: 100px;
|
||||
--csd-top: 8px;
|
||||
|
||||
/*
|
||||
CSD - Left Side ===
|
||||
Default: --csd-left: 50px; --csd-margin-left: 92px;
|
||||
*/
|
||||
|
||||
/*
|
||||
--csd-left: 50px;
|
||||
--csd-margin-left: 92px;
|
||||
*/
|
||||
|
||||
/*
|
||||
CSD - Right Side ===
|
||||
Defaults: --csd-right: 0px; --csd-margin-right: 95px;
|
||||
*/
|
||||
|
||||
--csd-right: 36px;
|
||||
--csd-margin-right: 130px;
|
||||
|
||||
/* === END: Window Control / Client Side Display Settings === */
|
||||
|
||||
/* === END: Extension Settings === */
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* ========================================================================= */
|
||||
|
||||
/* Sidebar (Core) :: This file is for the sidebar implementation */
|
||||
/*
|
||||
Extension (Core): Sidebar
|
||||
Description: This is the core implementation of the sidebar used in drannex42's FirefoxSidebar.
|
||||
Repository URL: https://github.com/drannex42/FirefoxSidebar
|
||||
Version: v12022.11.22 (YYYYY.MM.DD)
|
||||
*/
|
||||
|
||||
#main-window #TabsToolbar {
|
||||
visibility: collapse;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#sidebar-box > #browser,
|
||||
#webextpanels-window {
|
||||
background: transparent !important;
|
||||
|
||||
}
|
||||
|
||||
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"]
|
||||
#sidebar-header {
|
||||
/*! display: none; */
|
||||
}
|
||||
|
||||
/*Collapse in default state and add transition*/
|
||||
#sidebar-box {
|
||||
/*! overflow: visible !important; */
|
||||
border-right: none !important; /* border-right: 1px solid var(--sidebar-border-color) !important; */
|
||||
z-index: 2;
|
||||
border-right: none !important;
|
||||
width: 100% !important;
|
||||
background: var(--custom-sidebar-bg, --sidebar-background);
|
||||
|
||||
/* lock sidebar to height by doing the inverse margin of the toolbar element */
|
||||
z-index: 1000 !important;
|
||||
position: relative !important;
|
||||
margin-top: var(--menubar-height) !important;
|
||||
border-right: none;
|
||||
transition: none !important;
|
||||
|
||||
/* lock sidebar to specified width */
|
||||
min-width: var(--sidebar-width) !important;
|
||||
max-width: var(--sidebar-width) !important;
|
||||
overflow: hidden !important;
|
||||
transition-property: width;
|
||||
transition-duration: 0.25s;
|
||||
transition-delay: 0.25s;
|
||||
transition-timing-function: ease-in;
|
||||
}
|
||||
|
||||
#sidebar-box::after {
|
||||
background: var(--sidebar-border-color) !important;
|
||||
margin-left: 207px;
|
||||
z-index: 9999999;
|
||||
position: absolute;
|
||||
content: " ";
|
||||
width: 1px;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
#sidebar-box:hover:after {
|
||||
top: 42px;
|
||||
}
|
||||
|
||||
/*All other sidebar-boxes should be larger on hover*/
|
||||
#sidebar-box:hover, #sidebar-box #sidebar:hover {
|
||||
min-width: 350px !important;
|
||||
max-width: 350px !important;
|
||||
z-index: 999;
|
||||
margin-right: -300px !important;
|
||||
}
|
||||
|
||||
/*Tree Style Tabs && Sideberry specific sidebar width and size*/
|
||||
|
||||
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"]:hover,
|
||||
#sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"]:hover,
|
||||
#sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"] #sidebar:hover {
|
||||
min-width: 260px !important;
|
||||
max-width: 260px !important;
|
||||
margin-right: -210px !important;
|
||||
}
|
||||
|
||||
#sidebar-header {
|
||||
border: none !important;
|
||||
border-right: 1px solid var(--sidebar-border-color);
|
||||
background: var(--custom-sidebar-header-bg, transparent) !important;
|
||||
}
|
||||
|
||||
#sidebar-close,
|
||||
#sidebar-title,
|
||||
#sidebar-switcher-arrow {
|
||||
display: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#sidebar-switcher-target {
|
||||
border: none !important;
|
||||
margin-left: 4.5px !important;
|
||||
padding-top: 4px !important;
|
||||
padding-bottom: 6px !important;
|
||||
}
|
||||
|
||||
#sidebar-switcher-target:focus-visible:not(:hover, [open]),
|
||||
#sidebar-close:focus-visible:not(:hover, [open]) {
|
||||
outline: none !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.sidebar-splitter {
|
||||
opacity: 0 !important;
|
||||
width: 0px !important;
|
||||
border: none !important;
|
||||
--avatar-image-url: none !important;
|
||||
}
|
||||
|
||||
#sidebarMenu-popup .subviewbutton {
|
||||
min-width: 0px;
|
||||
padding: 0;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
toolbarseparator {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#nav-bar-customization-target {
|
||||
z-index: 99999;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.browser-toolbar {
|
||||
padding-left: var(--sidebar-width) !important;
|
||||
position: relative !important;
|
||||
}
|
||||
|
||||
#PersonalToolbar {
|
||||
padding: 2px 5px !important;
|
||||
padding-top: 0px !important;
|
||||
margin-top: 0px !important;
|
||||
padding-left: calc(var(--sidebar-width) + 6px) !important;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Extensions ::
|
||||
To enable/disable specific extensions just comment/uncomment the line below.
|
||||
=========================================================================
|
||||
*/
|
||||
|
||||
/* CSD / Window Controls */
|
||||
/*
|
||||
Extension: Window Controls / Client Side Decorations (CSD)
|
||||
Description: This brings the window controls into the main bar (where the address bar exists). Please see the prefs.css folder for switching the sides from left to right.
|
||||
Repository URL: https://github.com/drannex42/FirefoxSidebar
|
||||
Contributors: Mr-nUUb, Xanaxus, Drannex42
|
||||
Issue URL: https://github.com/drannex42/FirefoxSidebar/issues/14
|
||||
*/
|
||||
|
||||
/* allow the buttons to appear */
|
||||
.browser-toolbar {
|
||||
position: unset !important;
|
||||
}
|
||||
|
||||
/* reserve space for buttons */
|
||||
#nav-bar {
|
||||
padding-right: var(--csd-margin-right) !important;
|
||||
margin-left: var(--csd-margin-left) !important;
|
||||
}
|
||||
|
||||
/* move buttons next to menu button */
|
||||
.titlebar-buttonbox-container {
|
||||
visibility: visible !important;
|
||||
position: fixed !important;
|
||||
display: block;
|
||||
z-index: 999999999;
|
||||
top: var(--csd-top, inherit);
|
||||
right: var(--csd-right, inherit);
|
||||
left: var(--csd-left, inherit);
|
||||
max-width: var(--csd-width);
|
||||
}
|
||||
|
||||
/* hide buttons in fullscreen mode (video player and F11) */
|
||||
#main-window[inFullscreen="true"] .titlebar-buttonbox-container,
|
||||
#main-window[inDOMFullscreen="true"] .titlebar-buttonbox-container {
|
||||
visibility: hidden !important;
|
||||
}
|
||||
|
||||
/* remove empty space when in fullscreen mode (F11) */
|
||||
#main-window[inFullscreen="true"] #nav-bar {
|
||||
padding-right: 0px !important;
|
||||
margin-left: 0px !important;
|
||||
}
|
||||
/* END Client Side Decorations / Window Controls */
|
||||
|
||||
|
||||
|
||||
/* --- Prevent enlargement */
|
||||
#urlbar[breakout-extend] {
|
||||
top: calc(
|
||||
(var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2
|
||||
) !important;
|
||||
left: 0 !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
#urlbar[breakout-extend] #urlbar-input-container {
|
||||
height: var(--urlbar-height) !important;
|
||||
/* padding: 0px !important; */
|
||||
padding-block: 0px !important;
|
||||
padding-inline: 0px !important;
|
||||
}
|
||||
.urlbarView-row {
|
||||
padding: 0px 2px 0px 2px;
|
||||
}
|
||||
/* END Prevent enlargement --- */
|
||||
|
||||
/*/* --- Reduce row paddings to make them more compact */
|
||||
.urlbarView-row {
|
||||
padding: 2px 0px !important;
|
||||
line-height: 1.2em !important;
|
||||
margin: -1px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.urlbarView-row-inner {
|
||||
padding-bottom: 6px !important;
|
||||
}
|
||||
.urlbarView {
|
||||
margin: 0px !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
/* END Reduce row paddings to make them more compact --- */
|
||||
|
||||
/* Disable Urlbar Animation */
|
||||
#urlbar[breakout][breakout-extend][breakout-extend-animate]
|
||||
> #urlbar-background {
|
||||
animation-name: none !important;
|
||||
animation: none !important;
|
||||
}
|
||||
/* END Disable Urlbar Animation */
|
||||
|
||||
/* --- More compact "Search with Google" rows */
|
||||
.urlbarView-row[dynamicType="onboardTabToSearch"] > .urlbarView-row-inner {
|
||||
min-height: auto !important;
|
||||
width: auto !important;
|
||||
}
|
||||
.urlbarView-row[dynamicType="onboardTabToSearch"]
|
||||
> .urlbarView-row-inner
|
||||
> .urlbarView-no-wrap
|
||||
> .urlbarView-favicon {
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
/* END More compact "Search with Google" rows --- */
|
||||
|
||||
/* Remove active border on the addressbar when in focus */
|
||||
#nav-bar {
|
||||
--toolbar-field-focus-border-color: #ccc;
|
||||
}
|
||||
|
||||
/* Remove box shadow on address bar */
|
||||
#urlbar-background,
|
||||
#searchbar {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
'';
|
||||
bookmarks = [
|
||||
{
|
||||
name = "estrogen production";
|
||||
tags = ["chemistry" "oestrogen" "estrogen" "diy"];
|
||||
url = "https://crimethinc.com/2022/12/15/producing-transdermal-estrogen-a-do-it-yourself-guide";
|
||||
}
|
||||
{
|
||||
name = "Nix sites";
|
||||
toolbar = false;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "packages";
|
||||
tags = ["packages" "basic" "nix"];
|
||||
url = "https://search.nixos.org/";
|
||||
}
|
||||
{
|
||||
name = "settings";
|
||||
tags = ["settings" "services" "packages" "nix"];
|
||||
url = "https://mynixos.com";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,139 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
stylix.targets.firefox.profileNames = ["lillian"];
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
nativeMessagingHosts = [pkgs.firefoxpwa];
|
||||
package = pkgs.librewolf;
|
||||
profiles.default = {isDefault = false;};
|
||||
profiles.lillian = {
|
||||
isDefault = true;
|
||||
id = 1;
|
||||
settings = {
|
||||
"sidebar.verticalTabs" = true;
|
||||
"sidebar.visibility" = "expand-on-hover";
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"browser.bookmarks.addedImportButton" = true;
|
||||
"browser.bookmarks.restore_default_bookmarks" = false;
|
||||
"browser.bookmarks.showMobileBookmarks" = true;
|
||||
"browser.ctrlTab.sortByRecentlyUsed" = true;
|
||||
"browser.discovery.enabled" = false;
|
||||
"browser.download.panel.shown" = true;
|
||||
"browser.firefox-view.feature-tour" = "{\"message\":\"FIREFOX_VIEW_FEATURE_TOUR\",\"screen\":\"\",\"complete\":true}";
|
||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||
"browser.pageActions.persistedActions" = ''{"ids":["bookmark","_3c078156-979c-498b-8990-85f7987dd929_","firefoxpwa_filips_si"],"idsInUrlbar":["_3c078156-979c-498b-8990-85f7987dd929_","firefoxpwa_filips_si","bookmark"],"idsInUrlbarPreProton":[],"version":1}'';
|
||||
"browser.search.region" = "NL";
|
||||
"browser.uiCustomization.state" = ''{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":["jid1-mnnxcxisbpnsxq_jetpack-browser-action","firefoxpwa_filips_si-browser-action","ubo-scope_raymondhill_net-browser-action","treestyletab_piro_sakura_ne_jp-browser-action","wayback_machine_mozilla_org-browser-action","plasma-browser-integration_kde_org-browser-action","kde-connect_0xc0dedbad_com-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","bibitnow018_aqpl_mc2_chalmers_se-browser-action","_09b14d46-21c3-4a7d-b244-e756f497935b_-browser-action","_7fc8ef53-24ec-4205-87a4-1e745953bb0d_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_800215d6-eff0-4a62-9268-09857c048030_-browser-action","_b3e677f4-1150-4387-8629-da738260a48e_-browser-action","_d133e097-46d9-4ecc-9903-fa6a722a6e0e_-browser-action","myallychou_gmail_com-browser-action","_b7f9d2cd-d772-4302-8c3f-eb941af36f76_-browser-action","_cca112bb-1ca6-4593-a2f1-38d808a19dda_-browser-action","gdpr_cavi_au_dk-browser-action","_54da8dcf-a015-4c80-bbb4-db7f226ac7bd_-browser-action","jid1-om7ejgwa1u8akg_jetpack-browser-action","_7c1aa46e-b74f-4325-95d2-84c07d19cdce_-browser-action","_3c078156-979c-498b-8990-85f7987dd929_-browser-action","7esoorv3_alefvanoon_anonaddy_me-browser-action","_15b1b2af-e84a-4c70-ac7c-5608b0eeed5a_-browser-action","_b9db16a4-6edc-47ec-a1f4-b86292ed211d_-browser-action","dontfuckwithpaste_raim_ist-browser-action"],"nav-bar":["back-button","forward-button","stop-reload-button","urlbar-container","customizableui-special-spring2","downloads-button","_testpilot-containers-browser-action","addon_darkreader_org-browser-action","umatrix_raymondhill_net-browser-action","ublock0_raymondhill_net-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_3579f63b-d8ee-424f-bbb6-6d0ce3285e6a_-browser-action","woop-noopscoopsnsxq_jetpack-browser-action","jid1-bofifl9vbdl2zq_jetpack-browser-action","cookieautodelete_kennydo_com-browser-action","addon_simplelogin-browser-action","jid1-aqqsmbyb0a8adg_jetpack-browser-action","unified-extensions-button","reset-pbm-toolbar-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["tabbrowser-tabs","new-tab-button","alltabs-button","_c607c8df-14a7-4f28-894f-29e8722976af_-browser-action"],"PersonalToolbar":["import-button","personal-bookmarks"]},"seen":["save-to-pocket-button","developer-button","treestyletab_piro_sakura_ne_jp-browser-action","addon_darkreader_org-browser-action","_testpilot-containers-browser-action","wayback_machine_mozilla_org-browser-action","plasma-browser-integration_kde_org-browser-action","_c607c8df-14a7-4f28-894f-29e8722976af_-browser-action","kde-connect_0xc0dedbad_com-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","ublock0_raymondhill_net-browser-action","cookieautodelete_kennydo_com-browser-action","bibitnow018_aqpl_mc2_chalmers_se-browser-action","_09b14d46-21c3-4a7d-b244-e756f497935b_-browser-action","_7fc8ef53-24ec-4205-87a4-1e745953bb0d_-browser-action","woop-noopscoopsnsxq_jetpack-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_800215d6-eff0-4a62-9268-09857c048030_-browser-action","_3579f63b-d8ee-424f-bbb6-6d0ce3285e6a_-browser-action","_b3e677f4-1150-4387-8629-da738260a48e_-browser-action","_d133e097-46d9-4ecc-9903-fa6a722a6e0e_-browser-action","jid1-bofifl9vbdl2zq_jetpack-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","myallychou_gmail_com-browser-action","_b7f9d2cd-d772-4302-8c3f-eb941af36f76_-browser-action","umatrix_raymondhill_net-browser-action","_cca112bb-1ca6-4593-a2f1-38d808a19dda_-browser-action","gdpr_cavi_au_dk-browser-action","_54da8dcf-a015-4c80-bbb4-db7f226ac7bd_-browser-action","ubo-scope_raymondhill_net-browser-action","jid1-om7ejgwa1u8akg_jetpack-browser-action","_7c1aa46e-b74f-4325-95d2-84c07d19cdce_-browser-action","_3c078156-979c-498b-8990-85f7987dd929_-browser-action","addon_simplelogin-browser-action","7esoorv3_alefvanoon_anonaddy_me-browser-action","jid1-aqqsmbyb0a8adg_jetpack-browser-action","_15b1b2af-e84a-4c70-ac7c-5608b0eeed5a_-browser-action","firefoxpwa_filips_si-browser-action","_b9db16a4-6edc-47ec-a1f4-b86292ed211d_-browser-action","dontfuckwithpaste_raim_ist-browser-action","jid1-mnnxcxisbpnsxq_jetpack-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","toolbar-menubar","TabsToolbar","unified-extensions-area","widget-overflow-fixed-list"],"currentVersion":20,"newElementCount":14}'';
|
||||
"browser.urlbar.placeholderName" = "DuckDuckGo";
|
||||
"browser.urlbar.placeholderName.private" = "DuckDuckGo";
|
||||
"extensions.webextensions.uuid" = ''{"formautofill@mozilla.org":"ea6a95e0-ef85-453b-afdf-44e57e4ca32c","pictureinpicture@mozilla.org":"41fcca40-5f8a-4182-ace9-e1ff2e6fc210","screenshots@mozilla.org":"8c2c3f97-17a1-4240-b640-c9707e3b917e","webcompat-reporter@mozilla.org":"d2c1a84b-03ff-47c6-92be-a623026b79d9","webcompat@mozilla.org":"bb5b827a-1ad3-40d0-8c16-c7d6db11a62b","default-theme@mozilla.org":"83700f73-6c25-4599-9393-3e071be81fe6","wayback_machine@mozilla.org":"ef76899f-67d6-4ffb-973f-0c198a8369e4","uBlock0@raymondhill.net":"24e7b891-a28c-4555-b072-0ee184115cb4","DontFuckWithPaste@raim.ist":"6dbb9616-e8c9-40ff-a729-01dcd6fe09b4","uBO-Scope@raymondhill.net":"6afd83ed-7f93-41ad-960c-28c5ec5ac9bd","gdpr@cavi.au.dk":"4577a4f9-84e4-400c-a995-9b13640f3620","addon@simplelogin":"e492ff49-9c0e-4c42-ab28-465563e953b9","addons-search-detection@mozilla.com":"63a9d1fb-3c16-4b40-bd69-de186c138c5e","plasma-browser-integration@kde.org":"e655920d-846c-4a72-918e-86ebb25362a6","firefoxpwa@filips.si":"3ce26b62-9349-47cc-beaa-584b0c737979","addon@darkreader.org":"510c480d-7737-47ad-91a0-5b8e8f3745c3","shinigamieyes@shinigamieyes":"8f3b1099-f3b1-4468-915d-60fbfbfda8ce","7esoorv3@alefvanoon.anonaddy.me":"947c1016-2e39-48cd-ae1a-c301a6531d2a","CookieAutoDelete@kennydo.com":"28ccdbbd-d179-472a-8658-ae97d228f958","jid1-MnnxcxisBPnSXQ@jetpack":"f361e1b5-74bf-4073-ae95-245429a12cad","jid1-AQqSMBYb0a8ADg@jetpack":"8f3e6fd5-f009-4d2e-b501-0ec6b18dcf9e","wikipedia@search.mozilla.org":"c615bbc5-9fa2-48ae-a78d-7e5546c1a94e","ddg@search.mozilla.org":"4f7e3183-d053-40f6-b7b2-8f405f033281","{446900e4-71c2-419f-a6a7-df9c091e268b}":"bccbf892-7089-4d89-b886-a667e6fd9a03","{3c078156-979c-498b-8990-85f7987dd929}":"f3f046fa-c1b9-415d-b79b-236109b3926b"}'';
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.searchEngines" = "DuckDuckGo";
|
||||
};
|
||||
bookmarks = {
|
||||
force = true;
|
||||
settings = [
|
||||
{
|
||||
name = "DIY HRT";
|
||||
toolbar = false;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "estrogen production";
|
||||
tags = ["chemistry" "oestrogen" "estrogen" "diy"];
|
||||
url = "https://crimethinc.com/2022/12/15/producing-transdermal-estrogen-a-do-it-yourself-guide";
|
||||
}
|
||||
{
|
||||
name = "DIY HRT info";
|
||||
tags = ["guides" "wiki" "information" "DIY" "HRT" "estrogen" "testosterone"];
|
||||
url = "https://diyhrt.info/";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "repair resources";
|
||||
toolbar = false;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "manuals library";
|
||||
tags = ["repair" "manuals" "documentation"];
|
||||
url = "https://manualslib.com/";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "Nix sites";
|
||||
toolbar = false;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "packages";
|
||||
tags = ["packages" "basic" "nix"];
|
||||
url = "https://search.nixos.org/";
|
||||
}
|
||||
{
|
||||
name = "settings";
|
||||
tags = ["settings" "services" "packages" "nix"];
|
||||
url = "https://mynixos.com";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "Games";
|
||||
toolbar = false;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "PoE2 build sorceres";
|
||||
tags = ["PoE" "PoE2" "path of exile" "path of exile 2" "games" "guides" "build" "sorcerer" "sorceress"];
|
||||
url = "https://maxroll.gg/poe2/planner/caeye0hz";
|
||||
}
|
||||
{
|
||||
name = "PoE2 build ranger";
|
||||
tags = ["PoE" "PoE2" "path of exile" "path of exile 2" "games" "guides" "build" "bow" "ranger"];
|
||||
url = "https://maxroll.gg/poe2/build-guides/deadeye-gas-arrow-leveling-guide";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "Cooking";
|
||||
toolbar = false;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "Maldivian chili paste";
|
||||
tags = ["cooking" "maldives" "maldivian]" "chili paste" "chili" "spicy" "food" "sauce" "recipes"];
|
||||
url = "https://maldivescook.com/recipe/lonumirus/";
|
||||
}
|
||||
{
|
||||
name = "Samosas";
|
||||
tags = ["cooking" "india" "fried" "baked" "snack" "pastry" "samosa"];
|
||||
url = "https://www.indianhealthyrecipes.com/samosa-recipe-make-samosa/";
|
||||
}
|
||||
{
|
||||
name = "Baojiang Tofu";
|
||||
tags = ["lava tofu" "tofu" "China" "Yunnan" "vegan" "cooking" "oven" "baked"];
|
||||
url = "https://tofu.theclubb.co/post/baojiang-tofu-test-kitchen-aka-lava-tofu";
|
||||
}
|
||||
{
|
||||
name = "Sticky Toffee Pudding";
|
||||
tags = ["baking" "UK" "England" "dessert" "treat" "snack" "baked" "sweet" "treacle" "dates"];
|
||||
url = "https://www.latimes.com/recipe/sticky-toffee-pudding-moju";
|
||||
}
|
||||
{
|
||||
name = "Vegan Pumpkin Cheesecake";
|
||||
tags = ["baking" "vegan" "US" "cheesecake" "cake" "dessert" "sweet" "baked" "pumpkin" "cream cheese"];
|
||||
url = "https://www.karissasvegankitchen.com/vegan-pumpkin-cheesecake/";
|
||||
}
|
||||
{
|
||||
name = "Vegan Cheesecake";
|
||||
tags = ["baking" "US" "vegan" "cheesecake" "cake" "dessert" "sweet" "baked" "nut free" "cream cheese"];
|
||||
url = "https://www.noracooks.com/vegan-cheesecake/";
|
||||
}
|
||||
{
|
||||
name = "Biscotti";
|
||||
tags = ["baking" "Italian" "cookies" "sweet" "dessert" "fruits" "nuts" "almonds" "cranberries" "lemon"];
|
||||
url = "https://italianchef.org/the-ultimate-guide-to-homemade-italian-biscotti-recipes-tips-and-variations/";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,9 +1,15 @@
|
|||
{...}: {
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
# catppuccin.enable = true;
|
||||
catppuccin.enable = true;
|
||||
settings = {
|
||||
main = {
|
||||
font = "Fira Code:size=11";
|
||||
};
|
||||
|
||||
mouse = {
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
{...}: {
|
||||
home.file."settings.db" = {
|
||||
source = ./settings.db;
|
||||
target = ".config/freetube/settings.db";
|
||||
force = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
{"_id":"allowDashAv1Formats","value":true}
|
||||
{"_id":"barColor","value":true}
|
||||
{"_id":"baseTheme","value":"catppuccinMacchiatto"}
|
||||
{"_id":"bounds","value":{"x":0,"y":66,"width":2560,"height":1374,"maximized":true,"fullScreen":false}}
|
||||
{"_id":"defaultQuality","value":"1080"}
|
||||
{"_id":"fetchSubscriptionsAutomatically","value":false}
|
||||
{"_id":"generalAutoLoadMorePaginatedItemsEnabled","value":true}
|
||||
{"_id":"hideActiveSubscriptions","value":true}
|
||||
{"_id":"hidePopularVideos","value":true}
|
||||
{"_id":"hideRecommendedVideos","value":true}
|
||||
{"_id":"hideSubscriptionsCommunity","value":true}
|
||||
{"_id":"hideSubscriptionsLive","value":true}
|
||||
{"_id":"hideSubscriptionsShorts","value":true}
|
||||
{"_id":"hideSubscriptionsVideos","value":true}
|
||||
{"_id":"hideTrendingVideos","value":true}
|
||||
{"_id":"landingPage","value":"history"}
|
||||
{"_id":"mainColor","value":"CatppuccinMacchiattoMauve"}
|
||||
{"_id":"playNextVideo","value":false}
|
||||
{"_id":"quickBookmarkTargetPlaylistId","value":"favorites"}
|
||||
{"_id":"secColor","value":"CatppuccinMacchiattoMauve"}
|
||||
{"_id":"showDistractionFreeTitles","value":true}
|
||||
{"_id":"useDeArrowThumbnails","value":true}
|
||||
{"_id":"useDeArrowTitles","value":true}
|
||||
{"_id":"useSponsorBlock","value":true}
|
||||
|
|
@ -6,7 +6,3 @@ Name=Catppuccin
|
|||
Parent=FALLBACK/
|
||||
StartInCurrentSessionDir=true
|
||||
TerminalRows=30
|
||||
|
||||
[Scrolling]
|
||||
HistoryMode=2
|
||||
ScrollBarPosition=2
|
||||
|
|
|
|||
|
|
@ -1,4 +1,9 @@
|
|||
{...}: {
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
home.file = {
|
||||
"profile" = {
|
||||
source = ./Catppuccin.profile;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,3 @@ ToolBarsMovable=Disabled
|
|||
|
||||
[UiSettings]
|
||||
ColorScheme=
|
||||
|
||||
[Notification Messages]
|
||||
CloseAllEmptyTabs=true
|
||||
CloseAllTabs=true
|
||||
|
|
|
|||
919
home-manager/desktop/package-configs/plasma-desktop.nix
Normal file
919
home-manager/desktop/package-configs/plasma-desktop.nix
Normal file
|
|
@ -0,0 +1,919 @@
|
|||
{
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
shortcuts = {
|
||||
"ActivityManager"."switch-to-activity-a2cd7f51-1f1f-47a8-9544-a4c401f57a12" = [];
|
||||
"KDE Keyboard Layout Switcher"."Switch to Last-Used Keyboard Layout" = "Meta+Alt+L";
|
||||
"KDE Keyboard Layout Switcher"."Switch to Next Keyboard Layout" = "Meta+Alt+K";
|
||||
"kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S";
|
||||
"kcm_touchpad"."Disable Touchpad" = "Touchpad Off";
|
||||
"kcm_touchpad"."Enable Touchpad" = "Touchpad On";
|
||||
"kcm_touchpad"."Toggle Touchpad" = ["Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku"];
|
||||
"khotkeys"."{d03619b6-9b3c-48cc-9d9c-a2aadb485550}" = [];
|
||||
"kmix"."decrease_microphone_volume" = "Microphone Volume Down";
|
||||
"kmix"."decrease_volume" = "Volume Down";
|
||||
"kmix"."decrease_volume_small" = "Shift+Volume Down";
|
||||
"kmix"."increase_microphone_volume" = "Microphone Volume Up";
|
||||
"kmix"."increase_volume" = "Volume Up";
|
||||
"kmix"."increase_volume_small" = "Shift+Volume Up";
|
||||
"kmix"."mic_mute" = ["Microphone Mute" "Meta+Volume Mute"];
|
||||
"kmix"."mute" = "Volume Mute";
|
||||
"ksmserver"."Halt Without Confirmation" = [];
|
||||
"ksmserver"."Lock Session" = ["Meta+L" "Screensaver"];
|
||||
"ksmserver"."Log Out" = "Ctrl+Alt+Del";
|
||||
"ksmserver"."Log Out Without Confirmation" = [];
|
||||
"ksmserver"."Reboot" = [];
|
||||
"ksmserver"."Reboot Without Confirmation" = [];
|
||||
"ksmserver"."Shut Down" = [];
|
||||
"kwin"."Activate Window Demanding Attention" = "Meta+Ctrl+A";
|
||||
"kwin"."Cube" = "Meta+C";
|
||||
"kwin"."Cycle Overview" = [];
|
||||
"kwin"."Cycle Overview Opposite" = [];
|
||||
"kwin"."Decrease Opacity" = [];
|
||||
"kwin"."Edit Tiles" = "Meta+T";
|
||||
"kwin"."Expose" = "Ctrl+F9";
|
||||
"kwin"."ExposeAll" = ["Ctrl+F10" "Launch (C)"];
|
||||
"kwin"."ExposeClass" = "Ctrl+F7";
|
||||
"kwin"."ExposeClassCurrentDesktop" = [];
|
||||
"kwin"."Grid View" = "Meta+G";
|
||||
"kwin"."Increase Opacity" = [];
|
||||
"kwin"."Kill Window" = "Meta+Ctrl+Esc";
|
||||
"kwin"."Move Tablet to Next Output" = [];
|
||||
"kwin"."MoveMouseToCenter" = "Meta+F6";
|
||||
"kwin"."MoveMouseToFocus" = "Meta+F5";
|
||||
"kwin"."MoveZoomDown" = [];
|
||||
"kwin"."MoveZoomLeft" = [];
|
||||
"kwin"."MoveZoomRight" = [];
|
||||
"kwin"."MoveZoomUp" = [];
|
||||
"kwin"."Overview" = "Meta+W";
|
||||
"kwin"."Setup Window Shortcut" = [];
|
||||
"kwin"."Show Desktop" = "Meta+D";
|
||||
"kwin"."ShowDesktopGrid" = "Meta+F8";
|
||||
"kwin"."Suspend Compositing" = "Alt+Shift+F12";
|
||||
"kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down";
|
||||
"kwin"."Switch One Desktop Up" = "Meta+Ctrl+Up";
|
||||
"kwin"."Switch One Desktop to the Left" = "Meta+Ctrl+Left";
|
||||
"kwin"."Switch One Desktop to the Right" = "Meta+Ctrl+Right";
|
||||
"kwin"."Switch Window Down" = "Meta+Alt+Down";
|
||||
"kwin"."Switch Window Left" = "Meta+Alt+Left";
|
||||
"kwin"."Switch Window Right" = "Meta+Alt+Right";
|
||||
"kwin"."Switch Window Up" = "Meta+Alt+Up";
|
||||
"kwin"."Switch to Desktop 1" = "Ctrl+F1";
|
||||
"kwin"."Switch to Desktop 10" = [];
|
||||
"kwin"."Switch to Desktop 11" = [];
|
||||
"kwin"."Switch to Desktop 12" = [];
|
||||
"kwin"."Switch to Desktop 13" = [];
|
||||
"kwin"."Switch to Desktop 14" = [];
|
||||
"kwin"."Switch to Desktop 15" = [];
|
||||
"kwin"."Switch to Desktop 16" = [];
|
||||
"kwin"."Switch to Desktop 17" = [];
|
||||
"kwin"."Switch to Desktop 18" = [];
|
||||
"kwin"."Switch to Desktop 19" = [];
|
||||
"kwin"."Switch to Desktop 2" = "Ctrl+F2";
|
||||
"kwin"."Switch to Desktop 20" = [];
|
||||
"kwin"."Switch to Desktop 3" = "Ctrl+F3";
|
||||
"kwin"."Switch to Desktop 4" = "Ctrl+F4";
|
||||
"kwin"."Switch to Desktop 5" = [];
|
||||
"kwin"."Switch to Desktop 6" = [];
|
||||
"kwin"."Switch to Desktop 7" = [];
|
||||
"kwin"."Switch to Desktop 8" = [];
|
||||
"kwin"."Switch to Desktop 9" = [];
|
||||
"kwin"."Switch to Next Desktop" = [];
|
||||
"kwin"."Switch to Next Screen" = [];
|
||||
"kwin"."Switch to Previous Desktop" = [];
|
||||
"kwin"."Switch to Previous Screen" = [];
|
||||
"kwin"."Switch to Screen 0" = [];
|
||||
"kwin"."Switch to Screen 1" = [];
|
||||
"kwin"."Switch to Screen 2" = [];
|
||||
"kwin"."Switch to Screen 3" = [];
|
||||
"kwin"."Switch to Screen 4" = [];
|
||||
"kwin"."Switch to Screen 5" = [];
|
||||
"kwin"."Switch to Screen 6" = [];
|
||||
"kwin"."Switch to Screen 7" = [];
|
||||
"kwin"."Switch to Screen Above" = [];
|
||||
"kwin"."Switch to Screen Below" = [];
|
||||
"kwin"."Switch to Screen to the Left" = [];
|
||||
"kwin"."Switch to Screen to the Right" = [];
|
||||
"kwin"."Toggle Night Color" = [];
|
||||
"kwin"."Toggle Window Raise/Lower" = [];
|
||||
"kwin"."Walk Through Desktop List" = [];
|
||||
"kwin"."Walk Through Desktop List (Reverse)" = [];
|
||||
"kwin"."Walk Through Desktops" = [];
|
||||
"kwin"."Walk Through Desktops (Reverse)" = [];
|
||||
"kwin"."Walk Through Windows" = "Alt+Tab";
|
||||
"kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Backtab";
|
||||
"kwin"."Walk Through Windows Alternative" = [];
|
||||
"kwin"."Walk Through Windows Alternative (Reverse)" = [];
|
||||
"kwin"."Walk Through Windows of Current Application" = [];
|
||||
"kwin"."Walk Through Windows of Current Application (Reverse)" = "Alt+~";
|
||||
"kwin"."Walk Through Windows of Current Application Alternative" = [];
|
||||
"kwin"."Walk Through Windows of Current Application Alternative (Reverse)" = [];
|
||||
"kwin"."Window Above Other Windows" = [];
|
||||
"kwin"."Window Below Other Windows" = [];
|
||||
"kwin"."Window Close" = "Alt+F4";
|
||||
"kwin"."Window Fullscreen" = [];
|
||||
"kwin"."Window Grow Horizontal" = [];
|
||||
"kwin"."Window Grow Vertical" = [];
|
||||
"kwin"."Window Lower" = [];
|
||||
"kwin"."Window Maximize" = "Meta+PgUp";
|
||||
"kwin"."Window Maximize Horizontal" = [];
|
||||
"kwin"."Window Maximize Vertical" = [];
|
||||
"kwin"."Window Minimize" = "Meta+PgDown";
|
||||
"kwin"."Window Move" = [];
|
||||
"kwin"."Window Move Center" = [];
|
||||
"kwin"."Window No Border" = [];
|
||||
"kwin"."Window On All Desktops" = [];
|
||||
"kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
||||
"kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
|
||||
"kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
|
||||
"kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
|
||||
"kwin"."Window One Screen Down" = [];
|
||||
"kwin"."Window One Screen Up" = [];
|
||||
"kwin"."Window One Screen to the Left" = [];
|
||||
"kwin"."Window One Screen to the Right" = [];
|
||||
"kwin"."Window Operations Menu" = "Alt+F3";
|
||||
"kwin"."Window Pack Down" = [];
|
||||
"kwin"."Window Pack Left" = [];
|
||||
"kwin"."Window Pack Right" = [];
|
||||
"kwin"."Window Pack Up" = [];
|
||||
"kwin"."Window Quick Tile Bottom" = "Meta+Down";
|
||||
"kwin"."Window Quick Tile Bottom Left" = [];
|
||||
"kwin"."Window Quick Tile Bottom Right" = [];
|
||||
"kwin"."Window Quick Tile Left" = "Meta+Left";
|
||||
"kwin"."Window Quick Tile Right" = "Meta+Right";
|
||||
"kwin"."Window Quick Tile Top" = "Meta+Up";
|
||||
"kwin"."Window Quick Tile Top Left" = [];
|
||||
"kwin"."Window Quick Tile Top Right" = [];
|
||||
"kwin"."Window Raise" = [];
|
||||
"kwin"."Window Resize" = [];
|
||||
"kwin"."Window Shade" = [];
|
||||
"kwin"."Window Shrink Horizontal" = [];
|
||||
"kwin"."Window Shrink Vertical" = [];
|
||||
"kwin"."Window to Desktop 1" = [];
|
||||
"kwin"."Window to Desktop 10" = [];
|
||||
"kwin"."Window to Desktop 11" = [];
|
||||
"kwin"."Window to Desktop 12" = [];
|
||||
"kwin"."Window to Desktop 13" = [];
|
||||
"kwin"."Window to Desktop 14" = [];
|
||||
"kwin"."Window to Desktop 15" = [];
|
||||
"kwin"."Window to Desktop 16" = [];
|
||||
"kwin"."Window to Desktop 17" = [];
|
||||
"kwin"."Window to Desktop 18" = [];
|
||||
"kwin"."Window to Desktop 19" = [];
|
||||
"kwin"."Window to Desktop 2" = [];
|
||||
"kwin"."Window to Desktop 20" = [];
|
||||
"kwin"."Window to Desktop 3" = [];
|
||||
"kwin"."Window to Desktop 4" = [];
|
||||
"kwin"."Window to Desktop 5" = [];
|
||||
"kwin"."Window to Desktop 6" = [];
|
||||
"kwin"."Window to Desktop 7" = [];
|
||||
"kwin"."Window to Desktop 8" = [];
|
||||
"kwin"."Window to Desktop 9" = [];
|
||||
"kwin"."Window to Next Desktop" = [];
|
||||
"kwin"."Window to Next Screen" = [];
|
||||
"kwin"."Window to Previous Desktop" = [];
|
||||
"kwin"."Window to Previous Screen" = [];
|
||||
"kwin"."Window to Screen 0" = [];
|
||||
"kwin"."Window to Screen 1" = [];
|
||||
"kwin"."Window to Screen 2" = [];
|
||||
"kwin"."Window to Screen 3" = [];
|
||||
"kwin"."Window to Screen 4" = [];
|
||||
"kwin"."Window to Screen 5" = [];
|
||||
"kwin"."Window to Screen 6" = [];
|
||||
"kwin"."Window to Screen 7" = [];
|
||||
"kwin"."view_actual_size" = "Meta+0";
|
||||
"kwin"."view_zoom_in" = "Meta++";
|
||||
"kwin"."view_zoom_out" = "Meta+-";
|
||||
"mediacontrol"."mediavolumedown" = [];
|
||||
"mediacontrol"."mediavolumeup" = [];
|
||||
"mediacontrol"."nextmedia" = "Media Next";
|
||||
"mediacontrol"."pausemedia" = "Media Pause";
|
||||
"mediacontrol"."playmedia" = [];
|
||||
"mediacontrol"."playpausemedia" = "Media Play";
|
||||
"mediacontrol"."previousmedia" = "Media Previous";
|
||||
"mediacontrol"."stopmedia" = "Media Stop";
|
||||
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
|
||||
"org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
|
||||
"org_kde_powerdevil"."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
|
||||
"org_kde_powerdevil"."Hibernate" = "Hibernate";
|
||||
"org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up";
|
||||
"org_kde_powerdevil"."Increase Screen Brightness" = "Monitor Brightness Up";
|
||||
"org_kde_powerdevil"."Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
|
||||
"org_kde_powerdevil"."PowerDown" = "Power Down";
|
||||
"org_kde_powerdevil"."PowerOff" = "Power Off";
|
||||
"org_kde_powerdevil"."Sleep" = "Sleep";
|
||||
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
||||
"org_kde_powerdevil"."Turn Off Screen" = [];
|
||||
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B"];
|
||||
"plasmashell"."activate task manager entry 1" = "Meta+1";
|
||||
"plasmashell"."activate task manager entry 10" = [];
|
||||
"plasmashell"."activate task manager entry 2" = "Meta+2";
|
||||
"plasmashell"."activate task manager entry 3" = "Meta+3";
|
||||
"plasmashell"."activate task manager entry 4" = "Meta+4";
|
||||
"plasmashell"."activate task manager entry 5" = "Meta+5";
|
||||
"plasmashell"."activate task manager entry 6" = "Meta+6";
|
||||
"plasmashell"."activate task manager entry 7" = "Meta+7";
|
||||
"plasmashell"."activate task manager entry 8" = "Meta+8";
|
||||
"plasmashell"."activate task manager entry 9" = "Meta+9";
|
||||
"plasmashell"."clear-history" = [];
|
||||
"plasmashell"."clipboard_action" = "Meta+Ctrl+X";
|
||||
"plasmashell"."cycle-panels" = "Meta+Alt+P";
|
||||
"plasmashell"."cycleNextAction" = [];
|
||||
"plasmashell"."cyclePrevAction" = [];
|
||||
"plasmashell"."edit_clipboard" = [];
|
||||
"plasmashell"."manage activities" = "Meta+Q";
|
||||
"plasmashell"."next activity" = "Meta+Tab";
|
||||
"plasmashell"."previous activity" = "Meta+Shift+Tab";
|
||||
"plasmashell"."repeat_action" = "Meta+Ctrl+R";
|
||||
"plasmashell"."show dashboard" = "Ctrl+F12";
|
||||
"plasmashell"."show-barcode" = [];
|
||||
"plasmashell"."show-on-mouse-pos" = "Meta+V";
|
||||
"plasmashell"."stop current activity" = "Meta+S";
|
||||
"plasmashell"."switch to next activity" = [];
|
||||
"plasmashell"."switch to previous activity" = [];
|
||||
"plasmashell"."toggle do not disturb" = [];
|
||||
"services/org.kde.plasma-systemmonitor.desktop"."_launch" = "Ctrl+Esc";
|
||||
"services/org.kde.spectacle.desktop"."ActiveWindowScreenShot" = ["Meta+Print" "Ctrl+!"];
|
||||
"services/org.kde.spectacle.desktop"."CurrentMonitorScreenShot" = "Ctrl+#";
|
||||
"services/org.kde.spectacle.desktop"."FullScreenScreenShot" = ["Ctrl+$" "Shift+Print"];
|
||||
"services/org.kde.spectacle.desktop"."OpenWithoutScreenshot" = "Ctrl+^";
|
||||
"services/org.kde.spectacle.desktop"."RecordRegion" = [];
|
||||
"services/org.kde.spectacle.desktop"."RecordScreen" = [];
|
||||
"services/org.kde.spectacle.desktop"."RecordWindow" = [];
|
||||
"services/org.kde.spectacle.desktop"."RectangularRegionScreenShot" = ["Ctrl+@" "Meta+Shift+Print"];
|
||||
"services/org.kde.spectacle.desktop"."WindowUnderCursorScreenShot" = ["Meta+Ctrl+Print" "Ctrl+%"];
|
||||
"services/org.kde.spectacle.desktop"."_launch" = "Print";
|
||||
"services/services.org.kde.plasma-systemmonitor.desktop"."_launch" = "Ctrl+Esc";
|
||||
"services/services.org.kde.spectacle.desktop"."ActiveWindowScreenShot" = ["" "" "" "" "Meta+Print" "Ctrl+!"];
|
||||
"services/services.org.kde.spectacle.desktop"."CurrentMonitorScreenShot" = "Ctrl+#";
|
||||
"services/services.org.kde.spectacle.desktop"."FullScreenScreenShot" = ["" "" "" "" "Ctrl+$" "Shift+Print"];
|
||||
"services/services.org.kde.spectacle.desktop"."OpenWithoutScreenshot" = "Ctrl+^";
|
||||
"services/services.org.kde.spectacle.desktop"."RecordWindow" = [];
|
||||
"services/services.org.kde.spectacle.desktop"."RectangularRegionScreenShot" = ["" "" "" "" "Ctrl+@" "Meta+Shift+Print"];
|
||||
"services/services.org.kde.spectacle.desktop"."WindowUnderCursorScreenShot" = ["" "" "" "" "Meta+Ctrl+Print" "Ctrl+%"];
|
||||
"services/services.org.kde.spectacle.desktop"."_launch" = "Print";
|
||||
"services/services.services.org.kde.plasma-systemmonitor.desktop"."_launch" = "Ctrl+Esc";
|
||||
"services/services.services.org.kde.spectacle.desktop"."ActiveWindowScreenShot" = ["" "" "" "" "" "Meta+Print" "Ctrl+!"];
|
||||
"services/services.services.org.kde.spectacle.desktop"."CurrentMonitorScreenShot" = "Ctrl+#";
|
||||
"services/services.services.org.kde.spectacle.desktop"."FullScreenScreenShot" = ["" "" "" "" "" "Ctrl+$" "Shift+Print"];
|
||||
"services/services.services.org.kde.spectacle.desktop"."OpenWithoutScreenshot" = "Ctrl+^";
|
||||
"services/services.services.org.kde.spectacle.desktop"."RecordWindow" = [];
|
||||
"services/services.services.org.kde.spectacle.desktop"."RectangularRegionScreenShot" = ["" "" "" "" "" "Ctrl+@" "Meta+Shift+Print"];
|
||||
"services/services.services.org.kde.spectacle.desktop"."WindowUnderCursorScreenShot" = ["" "" "" "" "" "Meta+Ctrl+Print" "Ctrl+%"];
|
||||
"services/services.services.org.kde.spectacle.desktop"."_launch" = "Print";
|
||||
};
|
||||
configFile = {
|
||||
"baloofilerc"."General"."dbVersion" = 2;
|
||||
"baloofilerc"."General"."exclude filters" = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.venv,venv,core-dumps,lost+found";
|
||||
"baloofilerc"."General"."exclude filters version" = 8;
|
||||
"dolphinrc"."ExtractDialog"."1536x864 screen: Height" = 560;
|
||||
"dolphinrc"."ExtractDialog"."1536x864 screen: Width" = 1024;
|
||||
"dolphinrc"."ExtractDialog"."DirHistory[$e]" = "/home/";
|
||||
"dolphinrc"."General"."RememberOpenedTabs" = false;
|
||||
"dolphinrc"."IconsMode"."PreviewSize" = 80;
|
||||
"dolphinrc"."KFileDialog Settings"."Places Icons Auto-resize" = false;
|
||||
"dolphinrc"."KFileDialog Settings"."Places Icons Static Size" = 22;
|
||||
"dolphinrc"."KFileDialog Settings"."detailViewIconSize" = 16;
|
||||
"dolphinrc"."PreviewSettings"."Plugins" = "mobithumbnail,fontthumbnail,ebookthumbnail,kraorathumbnail,jpegthumbnail,windowsexethumbnail,comicbookthumbnail,djvuthumbnail,opendocumentthumbnail,windowsimagethumbnail,exrthumbnail,audiothumbnail,cursorthumbnail,svgthumbnail,blenderthumbnail,gsthumbnail,rawthumbnail,ffmpegthumbs,imagethumbnail,directorythumbnail";
|
||||
"dolphinrc"."Search"."Location" = "Everywhere";
|
||||
"kactivitymanagerdrc"."activities"."a2cd7f51-1f1f-47a8-9544-a4c401f57a12" = "Default";
|
||||
"kactivitymanagerdrc"."main"."currentActivity" = "a2cd7f51-1f1f-47a8-9544-a4c401f57a12";
|
||||
"kcminputrc"."Libinput.1739.30383.CUST0001:00 06CB:76AF Touchpad"."MiddleButtonEmulation" = true;
|
||||
"kcminputrc"."Libinput.1739.30383.CUST0001:00 06CB:76AF Touchpad"."NaturalScroll" = true;
|
||||
"kcminputrc"."Libinput.1739.30383.CUST0001:00 06CB:76AF Touchpad"."TapToClick" = true;
|
||||
"kcminputrc"."Libinput/1739/30383/CUST0001:00 06CB:76AF Touchpad"."MiddleButtonEmulation" = true;
|
||||
"kcminputrc"."Libinput/1739/30383/CUST0001:00 06CB:76AF Touchpad"."NaturalScroll" = true;
|
||||
"kcminputrc"."Libinput/1739/30383/CUST0001:00 06CB:76AF Touchpad"."TapToClick" = true;
|
||||
"kcminputrc"."Mouse"."cursorSize" = 32;
|
||||
"kcminputrc"."Tmp"."update_info" = "delete_cursor_old_default_size.upd:DeleteCursorOldDefaultSize";
|
||||
"kded5rc"."Module-browserintegrationreminder"."autoload" = false;
|
||||
"kded5rc"."Module-device_automounter"."autoload" = false;
|
||||
"kded5rc"."PlasmaBrowserIntegration"."shownCount" = 1;
|
||||
"kdeglobals"."General"."AccentColor" = "184,117,220";
|
||||
"kdeglobals"."General"."AllowKDEAppsToRememberWindowPositions" = true;
|
||||
"kdeglobals"."General"."BrowserApplication" = "firefox.desktop";
|
||||
"kdeglobals"."General"."LastUsedCustomAccentColor" = "184,117,220";
|
||||
"kdeglobals"."KDE"."AnimationDurationFactor" = 0.7071067811865475;
|
||||
"kdeglobals"."KDE"."ShowDeleteCommand" = false;
|
||||
"kdeglobals"."KDE"."SingleClick" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Allow Expansion" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Automatically select filename extension" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Breadcrumb Navigation" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Decoration position" = 2;
|
||||
"kdeglobals"."KFileDialog Settings"."LocationCombo Completionmode" = 5;
|
||||
"kdeglobals"."KFileDialog Settings"."PathCombo Completionmode" = 5;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Bookmarks" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Full Path" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Inline Previews" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Preview" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Speedbar" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Show hidden files" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Sort by" = "Date";
|
||||
"kdeglobals"."KFileDialog Settings"."Sort directories first" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Sort hidden files last" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Sort reversed" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Speedbar Width" = 138;
|
||||
"kdeglobals"."KFileDialog Settings"."View Style" = "DetailTree";
|
||||
"kdeglobals"."KShortcutsDialog Settings"."Dialog Size" = "600,480";
|
||||
"kdeglobals"."PreviewSettings"."MaximumRemoteSize" = 0;
|
||||
"kdeglobals"."WM"."activeBackground" = "49,54,59";
|
||||
"kdeglobals"."WM"."activeBlend" = "252,252,252";
|
||||
"kdeglobals"."WM"."activeForeground" = "252,252,252";
|
||||
"kdeglobals"."WM"."inactiveBackground" = "42,46,50";
|
||||
"kdeglobals"."WM"."inactiveBlend" = "161,169,177";
|
||||
"kdeglobals"."WM"."inactiveForeground" = "161,169,177";
|
||||
"kglobalshortcutsrc"."ActivityManager"."_k_friendly_name" = "Activity Manager";
|
||||
"kglobalshortcutsrc"."KDE Keyboard Layout Switcher"."_k_friendly_name" = "Keyboard Layout Switcher";
|
||||
"kglobalshortcutsrc"."kaccess"."_k_friendly_name" = "Accessibility";
|
||||
"kglobalshortcutsrc"."kcm_touchpad"."_k_friendly_name" = "Touchpad";
|
||||
"kglobalshortcutsrc"."khotkeys"."_k_friendly_name" = "Custom Shortcuts Service";
|
||||
"kglobalshortcutsrc"."kmix"."_k_friendly_name" = "Audio Volume";
|
||||
"kglobalshortcutsrc"."ksmserver"."_k_friendly_name" = "Session Management";
|
||||
"kglobalshortcutsrc"."kwin"."_k_friendly_name" = "KWin";
|
||||
"kglobalshortcutsrc"."mediacontrol"."_k_friendly_name" = "Media Controller";
|
||||
"kglobalshortcutsrc"."org_kde_powerdevil"."_k_friendly_name" = "KDE Power Management System";
|
||||
"kglobalshortcutsrc"."plasmashell"."_k_friendly_name" = "plasmashell";
|
||||
"khotkeysrc"."Data"."DataCount" = 3;
|
||||
"khotkeysrc"."Data_1"."Comment" = "KMenuEdit Global Shortcuts";
|
||||
"khotkeysrc"."Data_1"."DataCount" = 1;
|
||||
"khotkeysrc"."Data_1"."Enabled" = true;
|
||||
"khotkeysrc"."Data_1"."Name" = "KMenuEdit";
|
||||
"khotkeysrc"."Data_1"."SystemGroup" = 1;
|
||||
"khotkeysrc"."Data_1"."Type" = "ACTION_DATA_GROUP";
|
||||
"khotkeysrc"."Data_1Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_1Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_1_1"."Comment" = "Comment";
|
||||
"khotkeysrc"."Data_1_1"."Enabled" = true;
|
||||
"khotkeysrc"."Data_1_1"."Name" = "Search";
|
||||
"khotkeysrc"."Data_1_1"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_1_1Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_1_1Actions0"."CommandURL" = "http://google.com";
|
||||
"khotkeysrc"."Data_1_1Actions0"."Type" = "COMMAND_URL";
|
||||
"khotkeysrc"."Data_1_1Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_1_1Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_1_1Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_1_1Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_1_1Triggers0"."Key" = "";
|
||||
"khotkeysrc"."Data_1_1Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_1_1Triggers0"."Uuid" = "{d03619b6-9b3c-48cc-9d9c-a2aadb485550}";
|
||||
"khotkeysrc"."Data_2"."Comment" = "This group contains various examples demonstrating most of the features of KHotkeys. (Note that this group and all its actions are disabled by default.)";
|
||||
"khotkeysrc"."Data_2"."DataCount" = 8;
|
||||
"khotkeysrc"."Data_2"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2"."ImportId" = "kde32b1";
|
||||
"khotkeysrc"."Data_2"."Name" = "Examples";
|
||||
"khotkeysrc"."Data_2"."SystemGroup" = 0;
|
||||
"khotkeysrc"."Data_2"."Type" = "ACTION_DATA_GROUP";
|
||||
"khotkeysrc"."Data_2Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_1"."Comment" = "After pressing Ctrl+Alt+I, the KSIRC window will be activated, if it exists. Simple.";
|
||||
"khotkeysrc"."Data_2_1"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_1"."Name" = "Activate KSIRC Window";
|
||||
"khotkeysrc"."Data_2_1"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_1Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_1Actions0"."Type" = "ACTIVATE_WINDOW";
|
||||
"khotkeysrc"."Data_2_1Actions0Window"."Comment" = "KSIRC window";
|
||||
"khotkeysrc"."Data_2_1Actions0Window"."WindowsCount" = 1;
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."Class" = "ksirc";
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."ClassType" = 1;
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."Comment" = "KSIRC";
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."Role" = "";
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."RoleType" = 0;
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."Title" = "";
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."TitleType" = 0;
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."Type" = "SIMPLE";
|
||||
"khotkeysrc"."Data_2_1Actions0Window0"."WindowTypes" = 33;
|
||||
"khotkeysrc"."Data_2_1Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_1Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_1Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_2_1Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_1Triggers0"."Key" = "Ctrl+Alt+I";
|
||||
"khotkeysrc"."Data_2_1Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_1Triggers0"."Uuid" = "{edd7522b-b1b3-4273-838a-358ee66356b2}";
|
||||
"khotkeysrc"."Data_2_2"."Comment" = "After pressing Alt+Ctrl+H the input of 'Hello' will be simulated, as if you typed it. This is especially useful if you have call to frequently type a word (for instance, 'unsigned'). Every keypress in the input is separated by a colon ':'. Note that the keypresses literally mean keypresses, so you have to write what you would press on the keyboard. In the table below, the left column shows the input and the right column shows what to type.\n\n\"enter\" (i.e. new line) Enter or Return\na (i.e. small a) A\nA (i.e. capital a) Shift+A\n: (colon) Shift+;\n' ' (space) Space";
|
||||
"khotkeysrc"."Data_2_2"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_2"."Name" = "Type 'Hello'";
|
||||
"khotkeysrc"."Data_2_2"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_2Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_2Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_2_2Actions0"."Input" = "Shift+H:E:L:L:O\n";
|
||||
"khotkeysrc"."Data_2_2Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_2Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_2Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_2Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_2_2Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_2Triggers0"."Key" = "Ctrl+Alt+H";
|
||||
"khotkeysrc"."Data_2_2Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_2Triggers0"."Uuid" = "{fd8182a4-81c3-4540-8e28-f7e5e72585c5}";
|
||||
"khotkeysrc"."Data_2_3"."Comment" = "This action runs Konsole, after pressing Ctrl+Alt+T.";
|
||||
"khotkeysrc"."Data_2_3"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_3"."Name" = "Run Konsole";
|
||||
"khotkeysrc"."Data_2_3"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_3Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_3Actions0"."CommandURL" = "konsole";
|
||||
"khotkeysrc"."Data_2_3Actions0"."Type" = "COMMAND_URL";
|
||||
"khotkeysrc"."Data_2_3Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_3Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_3Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_2_3Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_3Triggers0"."Key" = "Ctrl+Alt+T";
|
||||
"khotkeysrc"."Data_2_3Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_3Triggers0"."Uuid" = "{cdaec3a6-214e-4cc5-a877-c1df7064993e}";
|
||||
"khotkeysrc"."Data_2_4"."Comment" = "Read the comment on the \"Type 'Hello'\" action first.\n\nQt Designer uses Ctrl+F4 for closing windows. In KDE, however, Ctrl+F4 is the shortcut for going to virtual desktop 4, so this shortcut does not work in Qt Designer. Further, Qt Designer does not use KDE's standard Ctrl+W for closing the window.\n\nThis problem can be solved by remapping Ctrl+W to Ctrl+F4 when the active window is Qt Designer. When Qt Designer is active, every time Ctrl+W is pressed, Ctrl+F4 will be sent to Qt Designer instead. In other applications, the effect of Ctrl+W is unchanged.\n\nWe now need to specify three things: A new shortcut trigger on 'Ctrl+W', a new keyboard input action sending Ctrl+F4, and a new condition that the active window is Qt Designer.\nQt Designer seems to always have title 'Qt Designer by Trolltech', so the condition will check for the active window having that title.";
|
||||
"khotkeysrc"."Data_2_4"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_4"."Name" = "Remap Ctrl+W to Ctrl+F4 in Qt Designer";
|
||||
"khotkeysrc"."Data_2_4"."Type" = "GENERIC_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_4Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_4Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_2_4Actions0"."Input" = "Ctrl+F4";
|
||||
"khotkeysrc"."Data_2_4Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_4Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_4Conditions"."ConditionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_4Conditions0"."Type" = "ACTIVE_WINDOW";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window"."Comment" = "Qt Designer";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window"."WindowsCount" = 1;
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."Class" = "";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."ClassType" = 0;
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."Role" = "";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."RoleType" = 0;
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."Title" = "Qt Designer by Trolltech";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."TitleType" = 2;
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."Type" = "SIMPLE";
|
||||
"khotkeysrc"."Data_2_4Conditions0Window0"."WindowTypes" = 33;
|
||||
"khotkeysrc"."Data_2_4Triggers"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_4Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_4Triggers0"."Key" = "Ctrl+W";
|
||||
"khotkeysrc"."Data_2_4Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_4Triggers0"."Uuid" = "{be4d63e1-1548-4c32-bdae-670b212885a5}";
|
||||
"khotkeysrc"."Data_2_5"."Comment" = "By pressing Alt+Ctrl+W a D-Bus call will be performed that will show the minicli. You can use any kind of D-Bus call, just like using the command line 'qdbus' tool.";
|
||||
"khotkeysrc"."Data_2_5"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_5"."Name" = "Perform D-Bus call 'qdbus org.kde.krunner /App display'";
|
||||
"khotkeysrc"."Data_2_5"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_5Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_5Actions0"."Arguments" = "";
|
||||
"khotkeysrc"."Data_2_5Actions0"."Call" = "popupExecuteCommand";
|
||||
"khotkeysrc"."Data_2_5Actions0"."RemoteApp" = "org.kde.krunner";
|
||||
"khotkeysrc"."Data_2_5Actions0"."RemoteObj" = "/App";
|
||||
"khotkeysrc"."Data_2_5Actions0"."Type" = "DBUS";
|
||||
"khotkeysrc"."Data_2_5Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_5Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_5Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_2_5Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_5Triggers0"."Key" = "Ctrl+Alt+W";
|
||||
"khotkeysrc"."Data_2_5Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_5Triggers0"."Uuid" = "{04f1cf14-2324-43a4-854e-867e289623db}";
|
||||
"khotkeysrc"."Data_2_6"."Comment" = "Read the comment on the \"Type 'Hello'\" action first.\n\nJust like the \"Type 'Hello'\" action, this one simulates keyboard input, specifically, after pressing Ctrl+Alt+B, it sends B to XMMS (B in XMMS jumps to the next song). The 'Send to specific window' checkbox is checked and a window with its class containing 'XMMS_Player' is specified; this will make the input always be sent to this window. This way, you can control XMMS even if, for instance, it is on a different virtual desktop.\n\n(Run 'xprop' and click on the XMMS window and search for WM_CLASS to see 'XMMS_Player').";
|
||||
"khotkeysrc"."Data_2_6"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_6"."Name" = "Next in XMMS";
|
||||
"khotkeysrc"."Data_2_6"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_6Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_6Actions0"."DestinationWindow" = 1;
|
||||
"khotkeysrc"."Data_2_6Actions0"."Input" = "B";
|
||||
"khotkeysrc"."Data_2_6Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow"."Comment" = "XMMS window";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow"."WindowsCount" = 1;
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."Class" = "XMMS_Player";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."ClassType" = 1;
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."Comment" = "XMMS Player window";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."Role" = "";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."RoleType" = 0;
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."Title" = "";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."TitleType" = 0;
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."Type" = "SIMPLE";
|
||||
"khotkeysrc"."Data_2_6Actions0DestinationWindow0"."WindowTypes" = 33;
|
||||
"khotkeysrc"."Data_2_6Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_6Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_6Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_2_6Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_6Triggers0"."Key" = "Ctrl+Alt+B";
|
||||
"khotkeysrc"."Data_2_6Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_6Triggers0"."Uuid" = "{c6793be6-3845-4af5-97c0-3d09f9118e6b}";
|
||||
"khotkeysrc"."Data_2_7"."Comment" = "Konqueror in KDE3.1 has tabs, and now you can also have gestures.\n\nJust press the middle mouse button and start drawing one of the gestures, and after you are finished, release the mouse button. If you only need to paste the selection, it still works, just click the middle mouse button. (You can change the mouse button to use in the global settings).\n\nRight now, there are the following gestures available:\nmove right and back left - Forward (Alt+Right)\nmove left and back right - Back (Alt+Left)\nmove up and back down - Up (Alt+Up)\ncircle counterclockwise - Reload (F5)\n\nThe gesture shapes can be entered by performing them in the configuration dialog. You can also look at your numeric pad to help you: gestures are recognized like a 3x3 grid of fields, numbered 1 to 9.\n\nNote that you must perform exactly the gesture to trigger the action. Because of this, it is possible to enter more gestures for the action. You should try to avoid complicated gestures where you change the direction of mouse movement more than once. For instance, 45654 or 74123 are simple to perform, but 1236987 may be already quite difficult.\n\nThe conditions for all gestures are defined in this group. All these gestures are active only if the active window is Konqueror (class contains 'konqueror').";
|
||||
"khotkeysrc"."Data_2_7"."DataCount" = 4;
|
||||
"khotkeysrc"."Data_2_7"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_7"."Name" = "Konqi Gestures";
|
||||
"khotkeysrc"."Data_2_7"."SystemGroup" = 0;
|
||||
"khotkeysrc"."Data_2_7"."Type" = "ACTION_DATA_GROUP";
|
||||
"khotkeysrc"."Data_2_7Conditions"."Comment" = "Konqueror window";
|
||||
"khotkeysrc"."Data_2_7Conditions"."ConditionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_7Conditions0"."Type" = "ACTIVE_WINDOW";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window"."Comment" = "Konqueror";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window"."WindowsCount" = 1;
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."Class" = "konqueror";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."ClassType" = 1;
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."Comment" = "Konqueror";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."Role" = "";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."RoleType" = 0;
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."Title" = "";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."TitleType" = 0;
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."Type" = "SIMPLE";
|
||||
"khotkeysrc"."Data_2_7Conditions0Window0"."WindowTypes" = 33;
|
||||
"khotkeysrc"."Data_2_7_1"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_1"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_7_1"."Name" = "Back";
|
||||
"khotkeysrc"."Data_2_7_1"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_7_1Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_7_1Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_2_7_1Actions0"."Input" = "Alt+Left";
|
||||
"khotkeysrc"."Data_2_7_1Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_7_1Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_1Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_7_1Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_2_7_1Triggers"."TriggersCount" = 3;
|
||||
"khotkeysrc"."Data_2_7_1Triggers0"."GesturePointData" = "0,0.0625,1,1,0.5,0.0625,0.0625,1,0.875,0.5,0.125,0.0625,1,0.75,0.5,0.1875,0.0625,1,0.625,0.5,0.25,0.0625,1,0.5,0.5,0.3125,0.0625,1,0.375,0.5,0.375,0.0625,1,0.25,0.5,0.4375,0.0625,1,0.125,0.5,0.5,0.0625,0,0,0.5,0.5625,0.0625,0,0.125,0.5,0.625,0.0625,0,0.25,0.5,0.6875,0.0625,0,0.375,0.5,0.75,0.0625,0,0.5,0.5,0.8125,0.0625,0,0.625,0.5,0.875,0.0625,0,0.75,0.5,0.9375,0.0625,0,0.875,0.5,1,0,0,1,0.5";
|
||||
"khotkeysrc"."Data_2_7_1Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_1Triggers1"."GesturePointData" = "0,0.0833333,1,0.5,0.5,0.0833333,0.0833333,1,0.375,0.5,0.166667,0.0833333,1,0.25,0.5,0.25,0.0833333,1,0.125,0.5,0.333333,0.0833333,0,0,0.5,0.416667,0.0833333,0,0.125,0.5,0.5,0.0833333,0,0.25,0.5,0.583333,0.0833333,0,0.375,0.5,0.666667,0.0833333,0,0.5,0.5,0.75,0.0833333,0,0.625,0.5,0.833333,0.0833333,0,0.75,0.5,0.916667,0.0833333,0,0.875,0.5,1,0,0,1,0.5";
|
||||
"khotkeysrc"."Data_2_7_1Triggers1"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_1Triggers2"."GesturePointData" = "0,0.0833333,1,1,0.5,0.0833333,0.0833333,1,0.875,0.5,0.166667,0.0833333,1,0.75,0.5,0.25,0.0833333,1,0.625,0.5,0.333333,0.0833333,1,0.5,0.5,0.416667,0.0833333,1,0.375,0.5,0.5,0.0833333,1,0.25,0.5,0.583333,0.0833333,1,0.125,0.5,0.666667,0.0833333,0,0,0.5,0.75,0.0833333,0,0.125,0.5,0.833333,0.0833333,0,0.25,0.5,0.916667,0.0833333,0,0.375,0.5,1,0,0,0.5,0.5";
|
||||
"khotkeysrc"."Data_2_7_1Triggers2"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_2"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_2"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_7_2"."Name" = "Forward";
|
||||
"khotkeysrc"."Data_2_7_2"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_7_2Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_7_2Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_2_7_2Actions0"."Input" = "Alt+Right";
|
||||
"khotkeysrc"."Data_2_7_2Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_7_2Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_2Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_7_2Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_2_7_2Triggers"."TriggersCount" = 3;
|
||||
"khotkeysrc"."Data_2_7_2Triggers0"."GesturePointData" = "0,0.0625,0,0,0.5,0.0625,0.0625,0,0.125,0.5,0.125,0.0625,0,0.25,0.5,0.1875,0.0625,0,0.375,0.5,0.25,0.0625,0,0.5,0.5,0.3125,0.0625,0,0.625,0.5,0.375,0.0625,0,0.75,0.5,0.4375,0.0625,0,0.875,0.5,0.5,0.0625,1,1,0.5,0.5625,0.0625,1,0.875,0.5,0.625,0.0625,1,0.75,0.5,0.6875,0.0625,1,0.625,0.5,0.75,0.0625,1,0.5,0.5,0.8125,0.0625,1,0.375,0.5,0.875,0.0625,1,0.25,0.5,0.9375,0.0625,1,0.125,0.5,1,0,0,0,0.5";
|
||||
"khotkeysrc"."Data_2_7_2Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_2Triggers1"."GesturePointData" = "0,0.0833333,0,0.5,0.5,0.0833333,0.0833333,0,0.625,0.5,0.166667,0.0833333,0,0.75,0.5,0.25,0.0833333,0,0.875,0.5,0.333333,0.0833333,1,1,0.5,0.416667,0.0833333,1,0.875,0.5,0.5,0.0833333,1,0.75,0.5,0.583333,0.0833333,1,0.625,0.5,0.666667,0.0833333,1,0.5,0.5,0.75,0.0833333,1,0.375,0.5,0.833333,0.0833333,1,0.25,0.5,0.916667,0.0833333,1,0.125,0.5,1,0,0,0,0.5";
|
||||
"khotkeysrc"."Data_2_7_2Triggers1"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_2Triggers2"."GesturePointData" = "0,0.0833333,0,0,0.5,0.0833333,0.0833333,0,0.125,0.5,0.166667,0.0833333,0,0.25,0.5,0.25,0.0833333,0,0.375,0.5,0.333333,0.0833333,0,0.5,0.5,0.416667,0.0833333,0,0.625,0.5,0.5,0.0833333,0,0.75,0.5,0.583333,0.0833333,0,0.875,0.5,0.666667,0.0833333,1,1,0.5,0.75,0.0833333,1,0.875,0.5,0.833333,0.0833333,1,0.75,0.5,0.916667,0.0833333,1,0.625,0.5,1,0,0,0.5,0.5";
|
||||
"khotkeysrc"."Data_2_7_2Triggers2"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_3"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_3"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_7_3"."Name" = "Up";
|
||||
"khotkeysrc"."Data_2_7_3"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_7_3Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_7_3Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_2_7_3Actions0"."Input" = "Alt+Up";
|
||||
"khotkeysrc"."Data_2_7_3Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_7_3Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_3Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_7_3Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_2_7_3Triggers"."TriggersCount" = 3;
|
||||
"khotkeysrc"."Data_2_7_3Triggers0"."GesturePointData" = "0,0.0625,-0.5,0.5,1,0.0625,0.0625,-0.5,0.5,0.875,0.125,0.0625,-0.5,0.5,0.75,0.1875,0.0625,-0.5,0.5,0.625,0.25,0.0625,-0.5,0.5,0.5,0.3125,0.0625,-0.5,0.5,0.375,0.375,0.0625,-0.5,0.5,0.25,0.4375,0.0625,-0.5,0.5,0.125,0.5,0.0625,0.5,0.5,0,0.5625,0.0625,0.5,0.5,0.125,0.625,0.0625,0.5,0.5,0.25,0.6875,0.0625,0.5,0.5,0.375,0.75,0.0625,0.5,0.5,0.5,0.8125,0.0625,0.5,0.5,0.625,0.875,0.0625,0.5,0.5,0.75,0.9375,0.0625,0.5,0.5,0.875,1,0,0,0.5,1";
|
||||
"khotkeysrc"."Data_2_7_3Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_3Triggers1"."GesturePointData" = "0,0.0833333,-0.5,0.5,1,0.0833333,0.0833333,-0.5,0.5,0.875,0.166667,0.0833333,-0.5,0.5,0.75,0.25,0.0833333,-0.5,0.5,0.625,0.333333,0.0833333,-0.5,0.5,0.5,0.416667,0.0833333,-0.5,0.5,0.375,0.5,0.0833333,-0.5,0.5,0.25,0.583333,0.0833333,-0.5,0.5,0.125,0.666667,0.0833333,0.5,0.5,0,0.75,0.0833333,0.5,0.5,0.125,0.833333,0.0833333,0.5,0.5,0.25,0.916667,0.0833333,0.5,0.5,0.375,1,0,0,0.5,0.5";
|
||||
"khotkeysrc"."Data_2_7_3Triggers1"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_3Triggers2"."GesturePointData" = "0,0.0833333,-0.5,0.5,0.5,0.0833333,0.0833333,-0.5,0.5,0.375,0.166667,0.0833333,-0.5,0.5,0.25,0.25,0.0833333,-0.5,0.5,0.125,0.333333,0.0833333,0.5,0.5,0,0.416667,0.0833333,0.5,0.5,0.125,0.5,0.0833333,0.5,0.5,0.25,0.583333,0.0833333,0.5,0.5,0.375,0.666667,0.0833333,0.5,0.5,0.5,0.75,0.0833333,0.5,0.5,0.625,0.833333,0.0833333,0.5,0.5,0.75,0.916667,0.0833333,0.5,0.5,0.875,1,0,0,0.5,1";
|
||||
"khotkeysrc"."Data_2_7_3Triggers2"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_4"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_4"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_7_4"."Name" = "Reload";
|
||||
"khotkeysrc"."Data_2_7_4"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_7_4Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_7_4Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_2_7_4Actions0"."Input" = "F5";
|
||||
"khotkeysrc"."Data_2_7_4Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_2_7_4Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_7_4Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_7_4Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_2_7_4Triggers"."TriggersCount" = 3;
|
||||
"khotkeysrc"."Data_2_7_4Triggers0"."GesturePointData" = "0,0.03125,0,0,1,0.03125,0.03125,0,0.125,1,0.0625,0.03125,0,0.25,1,0.09375,0.03125,0,0.375,1,0.125,0.03125,0,0.5,1,0.15625,0.03125,0,0.625,1,0.1875,0.03125,0,0.75,1,0.21875,0.03125,0,0.875,1,0.25,0.03125,-0.5,1,1,0.28125,0.03125,-0.5,1,0.875,0.3125,0.03125,-0.5,1,0.75,0.34375,0.03125,-0.5,1,0.625,0.375,0.03125,-0.5,1,0.5,0.40625,0.03125,-0.5,1,0.375,0.4375,0.03125,-0.5,1,0.25,0.46875,0.03125,-0.5,1,0.125,0.5,0.03125,1,1,0,0.53125,0.03125,1,0.875,0,0.5625,0.03125,1,0.75,0,0.59375,0.03125,1,0.625,0,0.625,0.03125,1,0.5,0,0.65625,0.03125,1,0.375,0,0.6875,0.03125,1,0.25,0,0.71875,0.03125,1,0.125,0,0.75,0.03125,0.5,0,0,0.78125,0.03125,0.5,0,0.125,0.8125,0.03125,0.5,0,0.25,0.84375,0.03125,0.5,0,0.375,0.875,0.03125,0.5,0,0.5,0.90625,0.03125,0.5,0,0.625,0.9375,0.03125,0.5,0,0.75,0.96875,0.03125,0.5,0,0.875,1,0,0,0,1";
|
||||
"khotkeysrc"."Data_2_7_4Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_4Triggers1"."GesturePointData" = "0,0.0277778,0,0,1,0.0277778,0.0277778,0,0.125,1,0.0555556,0.0277778,0,0.25,1,0.0833333,0.0277778,0,0.375,1,0.111111,0.0277778,0,0.5,1,0.138889,0.0277778,0,0.625,1,0.166667,0.0277778,0,0.75,1,0.194444,0.0277778,0,0.875,1,0.222222,0.0277778,-0.5,1,1,0.25,0.0277778,-0.5,1,0.875,0.277778,0.0277778,-0.5,1,0.75,0.305556,0.0277778,-0.5,1,0.625,0.333333,0.0277778,-0.5,1,0.5,0.361111,0.0277778,-0.5,1,0.375,0.388889,0.0277778,-0.5,1,0.25,0.416667,0.0277778,-0.5,1,0.125,0.444444,0.0277778,1,1,0,0.472222,0.0277778,1,0.875,0,0.5,0.0277778,1,0.75,0,0.527778,0.0277778,1,0.625,0,0.555556,0.0277778,1,0.5,0,0.583333,0.0277778,1,0.375,0,0.611111,0.0277778,1,0.25,0,0.638889,0.0277778,1,0.125,0,0.666667,0.0277778,0.5,0,0,0.694444,0.0277778,0.5,0,0.125,0.722222,0.0277778,0.5,0,0.25,0.75,0.0277778,0.5,0,0.375,0.777778,0.0277778,0.5,0,0.5,0.805556,0.0277778,0.5,0,0.625,0.833333,0.0277778,0.5,0,0.75,0.861111,0.0277778,0.5,0,0.875,0.888889,0.0277778,0,0,1,0.916667,0.0277778,0,0.125,1,0.944444,0.0277778,0,0.25,1,0.972222,0.0277778,0,0.375,1,1,0,0,0.5,1";
|
||||
"khotkeysrc"."Data_2_7_4Triggers1"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_7_4Triggers2"."GesturePointData" = "0,0.0277778,0.5,0,0.5,0.0277778,0.0277778,0.5,0,0.625,0.0555556,0.0277778,0.5,0,0.75,0.0833333,0.0277778,0.5,0,0.875,0.111111,0.0277778,0,0,1,0.138889,0.0277778,0,0.125,1,0.166667,0.0277778,0,0.25,1,0.194444,0.0277778,0,0.375,1,0.222222,0.0277778,0,0.5,1,0.25,0.0277778,0,0.625,1,0.277778,0.0277778,0,0.75,1,0.305556,0.0277778,0,0.875,1,0.333333,0.0277778,-0.5,1,1,0.361111,0.0277778,-0.5,1,0.875,0.388889,0.0277778,-0.5,1,0.75,0.416667,0.0277778,-0.5,1,0.625,0.444444,0.0277778,-0.5,1,0.5,0.472222,0.0277778,-0.5,1,0.375,0.5,0.0277778,-0.5,1,0.25,0.527778,0.0277778,-0.5,1,0.125,0.555556,0.0277778,1,1,0,0.583333,0.0277778,1,0.875,0,0.611111,0.0277778,1,0.75,0,0.638889,0.0277778,1,0.625,0,0.666667,0.0277778,1,0.5,0,0.694444,0.0277778,1,0.375,0,0.722222,0.0277778,1,0.25,0,0.75,0.0277778,1,0.125,0,0.777778,0.0277778,0.5,0,0,0.805556,0.0277778,0.5,0,0.125,0.833333,0.0277778,0.5,0,0.25,0.861111,0.0277778,0.5,0,0.375,0.888889,0.0277778,0.5,0,0.5,0.916667,0.0277778,0.5,0,0.625,0.944444,0.0277778,0.5,0,0.75,0.972222,0.0277778,0.5,0,0.875,1,0,0,0,1";
|
||||
"khotkeysrc"."Data_2_7_4Triggers2"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_2_8"."Comment" = "After pressing Win+E (Tux+E) a WWW browser will be launched, and it will open http://www.kde.org . You may run all kind of commands you can run in minicli (Alt+F2).";
|
||||
"khotkeysrc"."Data_2_8"."Enabled" = false;
|
||||
"khotkeysrc"."Data_2_8"."Name" = "Go to KDE Website";
|
||||
"khotkeysrc"."Data_2_8"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_2_8Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_2_8Actions0"."CommandURL" = "http://www.kde.org";
|
||||
"khotkeysrc"."Data_2_8Actions0"."Type" = "COMMAND_URL";
|
||||
"khotkeysrc"."Data_2_8Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_2_8Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_2_8Triggers"."Comment" = "Simple_action";
|
||||
"khotkeysrc"."Data_2_8Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_2_8Triggers0"."Key" = "Meta+E";
|
||||
"khotkeysrc"."Data_2_8Triggers0"."Type" = "SHORTCUT";
|
||||
"khotkeysrc"."Data_2_8Triggers0"."Uuid" = "{af8f36c3-5682-4153-869f-fe61c53dd3c3}";
|
||||
"khotkeysrc"."Data_3"."Comment" = "Basic Konqueror gestures.";
|
||||
"khotkeysrc"."Data_3"."DataCount" = 14;
|
||||
"khotkeysrc"."Data_3"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3"."ImportId" = "konqueror_gestures_kde321";
|
||||
"khotkeysrc"."Data_3"."Name" = "Konqueror Gestures";
|
||||
"khotkeysrc"."Data_3"."SystemGroup" = 0;
|
||||
"khotkeysrc"."Data_3"."Type" = "ACTION_DATA_GROUP";
|
||||
"khotkeysrc"."Data_3Conditions"."Comment" = "Konqueror window";
|
||||
"khotkeysrc"."Data_3Conditions"."ConditionsCount" = 1;
|
||||
"khotkeysrc"."Data_3Conditions0"."Type" = "ACTIVE_WINDOW";
|
||||
"khotkeysrc"."Data_3Conditions0Window"."Comment" = "Konqueror";
|
||||
"khotkeysrc"."Data_3Conditions0Window"."WindowsCount" = 1;
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."Class" = "^konquerors";
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."ClassType" = 3;
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."Comment" = "Konqueror";
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."Role" = "konqueror-mainwindow#1";
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."RoleType" = 0;
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."Title" = "file:/ - Konqueror";
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."TitleType" = 0;
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."Type" = "SIMPLE";
|
||||
"khotkeysrc"."Data_3Conditions0Window0"."WindowTypes" = 1;
|
||||
"khotkeysrc"."Data_3_1"."Comment" = "Press, move left, release.";
|
||||
"khotkeysrc"."Data_3_1"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_1"."Name" = "Back";
|
||||
"khotkeysrc"."Data_3_1"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_10"."Comment" = "Opera-style: Press, move up, release.\nNOTE: Conflicts with 'New Tab', and as such is disabled by default.";
|
||||
"khotkeysrc"."Data_3_10"."Enabled" = false;
|
||||
"khotkeysrc"."Data_3_10"."Name" = "Stop Loading";
|
||||
"khotkeysrc"."Data_3_10"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_10Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_10Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_10Actions0"."Input" = "Escape\n";
|
||||
"khotkeysrc"."Data_3_10Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_10Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_10Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_10Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_10Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_10Triggers0"."GesturePointData" = "0,0.125,-0.5,0.5,1,0.125,0.125,-0.5,0.5,0.875,0.25,0.125,-0.5,0.5,0.75,0.375,0.125,-0.5,0.5,0.625,0.5,0.125,-0.5,0.5,0.5,0.625,0.125,-0.5,0.5,0.375,0.75,0.125,-0.5,0.5,0.25,0.875,0.125,-0.5,0.5,0.125,1,0,0,0.5,0";
|
||||
"khotkeysrc"."Data_3_10Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_11"."Comment" = "Going up in URL/directory structure.\nMozilla-style: Press, move up, move left, move up, release.";
|
||||
"khotkeysrc"."Data_3_11"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_11"."Name" = "Up";
|
||||
"khotkeysrc"."Data_3_11"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_11Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_11Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_11Actions0"."Input" = "Alt+Up";
|
||||
"khotkeysrc"."Data_3_11Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_11Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_11Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_11Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_11Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_11Triggers0"."GesturePointData" = "0,0.0625,-0.5,1,1,0.0625,0.0625,-0.5,1,0.875,0.125,0.0625,-0.5,1,0.75,0.1875,0.0625,-0.5,1,0.625,0.25,0.0625,1,1,0.5,0.3125,0.0625,1,0.875,0.5,0.375,0.0625,1,0.75,0.5,0.4375,0.0625,1,0.625,0.5,0.5,0.0625,1,0.5,0.5,0.5625,0.0625,1,0.375,0.5,0.625,0.0625,1,0.25,0.5,0.6875,0.0625,1,0.125,0.5,0.75,0.0625,-0.5,0,0.5,0.8125,0.0625,-0.5,0,0.375,0.875,0.0625,-0.5,0,0.25,0.9375,0.0625,-0.5,0,0.125,1,0,0,0,0";
|
||||
"khotkeysrc"."Data_3_11Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_12"."Comment" = "Going up in URL/directory structure.\nOpera-style: Press, move up, move left, move up, release.\nNOTE: Conflicts with \"Activate Previous Tab\", and as such is disabled by default.";
|
||||
"khotkeysrc"."Data_3_12"."Enabled" = false;
|
||||
"khotkeysrc"."Data_3_12"."Name" = "Up #2";
|
||||
"khotkeysrc"."Data_3_12"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_12Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_12Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_12Actions0"."Input" = "Alt+Up\n";
|
||||
"khotkeysrc"."Data_3_12Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_12Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_12Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_12Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_12Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_12Triggers0"."GesturePointData" = "0,0.0625,-0.5,1,1,0.0625,0.0625,-0.5,1,0.875,0.125,0.0625,-0.5,1,0.75,0.1875,0.0625,-0.5,1,0.625,0.25,0.0625,-0.5,1,0.5,0.3125,0.0625,-0.5,1,0.375,0.375,0.0625,-0.5,1,0.25,0.4375,0.0625,-0.5,1,0.125,0.5,0.0625,1,1,0,0.5625,0.0625,1,0.875,0,0.625,0.0625,1,0.75,0,0.6875,0.0625,1,0.625,0,0.75,0.0625,1,0.5,0,0.8125,0.0625,1,0.375,0,0.875,0.0625,1,0.25,0,0.9375,0.0625,1,0.125,0,1,0,0,0,0";
|
||||
"khotkeysrc"."Data_3_12Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_13"."Comment" = "Press, move up, move right, release.";
|
||||
"khotkeysrc"."Data_3_13"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_13"."Name" = "Activate Next Tab";
|
||||
"khotkeysrc"."Data_3_13"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_13Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_13Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_13Actions0"."Input" = "Ctrl+.\n";
|
||||
"khotkeysrc"."Data_3_13Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_13Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_13Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_13Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_13Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_13Triggers0"."GesturePointData" = "0,0.0625,-0.5,0,1,0.0625,0.0625,-0.5,0,0.875,0.125,0.0625,-0.5,0,0.75,0.1875,0.0625,-0.5,0,0.625,0.25,0.0625,-0.5,0,0.5,0.3125,0.0625,-0.5,0,0.375,0.375,0.0625,-0.5,0,0.25,0.4375,0.0625,-0.5,0,0.125,0.5,0.0625,0,0,0,0.5625,0.0625,0,0.125,0,0.625,0.0625,0,0.25,0,0.6875,0.0625,0,0.375,0,0.75,0.0625,0,0.5,0,0.8125,0.0625,0,0.625,0,0.875,0.0625,0,0.75,0,0.9375,0.0625,0,0.875,0,1,0,0,1,0";
|
||||
"khotkeysrc"."Data_3_13Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_14"."Comment" = "Press, move up, move left, release.";
|
||||
"khotkeysrc"."Data_3_14"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_14"."Name" = "Activate Previous Tab";
|
||||
"khotkeysrc"."Data_3_14"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_14Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_14Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_14Actions0"."Input" = "Ctrl+,";
|
||||
"khotkeysrc"."Data_3_14Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_14Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_14Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_14Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_14Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_14Triggers0"."GesturePointData" = "0,0.0625,-0.5,1,1,0.0625,0.0625,-0.5,1,0.875,0.125,0.0625,-0.5,1,0.75,0.1875,0.0625,-0.5,1,0.625,0.25,0.0625,-0.5,1,0.5,0.3125,0.0625,-0.5,1,0.375,0.375,0.0625,-0.5,1,0.25,0.4375,0.0625,-0.5,1,0.125,0.5,0.0625,1,1,0,0.5625,0.0625,1,0.875,0,0.625,0.0625,1,0.75,0,0.6875,0.0625,1,0.625,0,0.75,0.0625,1,0.5,0,0.8125,0.0625,1,0.375,0,0.875,0.0625,1,0.25,0,0.9375,0.0625,1,0.125,0,1,0,0,0,0";
|
||||
"khotkeysrc"."Data_3_14Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_1Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_1Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_1Actions0"."Input" = "Alt+Left";
|
||||
"khotkeysrc"."Data_3_1Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_1Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_1Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_1Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_1Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_1Triggers0"."GesturePointData" = "0,0.125,1,1,0.5,0.125,0.125,1,0.875,0.5,0.25,0.125,1,0.75,0.5,0.375,0.125,1,0.625,0.5,0.5,0.125,1,0.5,0.5,0.625,0.125,1,0.375,0.5,0.75,0.125,1,0.25,0.5,0.875,0.125,1,0.125,0.5,1,0,0,0,0.5";
|
||||
"khotkeysrc"."Data_3_1Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_2"."Comment" = "Press, move down, move up, move down, release.";
|
||||
"khotkeysrc"."Data_3_2"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_2"."Name" = "Duplicate Tab";
|
||||
"khotkeysrc"."Data_3_2"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_2Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_2Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_2Actions0"."Input" = "Ctrl+Shift+D\n";
|
||||
"khotkeysrc"."Data_3_2Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_2Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_2Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_2Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_2Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_2Triggers0"."GesturePointData" = "0,0.0416667,0.5,0.5,0,0.0416667,0.0416667,0.5,0.5,0.125,0.0833333,0.0416667,0.5,0.5,0.25,0.125,0.0416667,0.5,0.5,0.375,0.166667,0.0416667,0.5,0.5,0.5,0.208333,0.0416667,0.5,0.5,0.625,0.25,0.0416667,0.5,0.5,0.75,0.291667,0.0416667,0.5,0.5,0.875,0.333333,0.0416667,-0.5,0.5,1,0.375,0.0416667,-0.5,0.5,0.875,0.416667,0.0416667,-0.5,0.5,0.75,0.458333,0.0416667,-0.5,0.5,0.625,0.5,0.0416667,-0.5,0.5,0.5,0.541667,0.0416667,-0.5,0.5,0.375,0.583333,0.0416667,-0.5,0.5,0.25,0.625,0.0416667,-0.5,0.5,0.125,0.666667,0.0416667,0.5,0.5,0,0.708333,0.0416667,0.5,0.5,0.125,0.75,0.0416667,0.5,0.5,0.25,0.791667,0.0416667,0.5,0.5,0.375,0.833333,0.0416667,0.5,0.5,0.5,0.875,0.0416667,0.5,0.5,0.625,0.916667,0.0416667,0.5,0.5,0.75,0.958333,0.0416667,0.5,0.5,0.875,1,0,0,0.5,1";
|
||||
"khotkeysrc"."Data_3_2Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_3"."Comment" = "Press, move down, move up, release.";
|
||||
"khotkeysrc"."Data_3_3"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_3"."Name" = "Duplicate Window";
|
||||
"khotkeysrc"."Data_3_3"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_3Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_3Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_3Actions0"."Input" = "Ctrl+D\n";
|
||||
"khotkeysrc"."Data_3_3Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_3Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_3Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_3Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_3Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_3Triggers0"."GesturePointData" = "0,0.0625,0.5,0.5,0,0.0625,0.0625,0.5,0.5,0.125,0.125,0.0625,0.5,0.5,0.25,0.1875,0.0625,0.5,0.5,0.375,0.25,0.0625,0.5,0.5,0.5,0.3125,0.0625,0.5,0.5,0.625,0.375,0.0625,0.5,0.5,0.75,0.4375,0.0625,0.5,0.5,0.875,0.5,0.0625,-0.5,0.5,1,0.5625,0.0625,-0.5,0.5,0.875,0.625,0.0625,-0.5,0.5,0.75,0.6875,0.0625,-0.5,0.5,0.625,0.75,0.0625,-0.5,0.5,0.5,0.8125,0.0625,-0.5,0.5,0.375,0.875,0.0625,-0.5,0.5,0.25,0.9375,0.0625,-0.5,0.5,0.125,1,0,0,0.5,0";
|
||||
"khotkeysrc"."Data_3_3Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_4"."Comment" = "Press, move right, release.";
|
||||
"khotkeysrc"."Data_3_4"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_4"."Name" = "Forward";
|
||||
"khotkeysrc"."Data_3_4"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_4Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_4Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_4Actions0"."Input" = "Alt+Right";
|
||||
"khotkeysrc"."Data_3_4Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_4Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_4Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_4Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_4Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_4Triggers0"."GesturePointData" = "0,0.125,0,0,0.5,0.125,0.125,0,0.125,0.5,0.25,0.125,0,0.25,0.5,0.375,0.125,0,0.375,0.5,0.5,0.125,0,0.5,0.5,0.625,0.125,0,0.625,0.5,0.75,0.125,0,0.75,0.5,0.875,0.125,0,0.875,0.5,1,0,0,1,0.5";
|
||||
"khotkeysrc"."Data_3_4Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_5"."Comment" = "Press, move down, move half up, move right, move down, release.\n(Drawing a lowercase 'h'.)";
|
||||
"khotkeysrc"."Data_3_5"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_5"."Name" = "Home";
|
||||
"khotkeysrc"."Data_3_5"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_5Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_5Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_5Actions0"."Input" = "Alt+Home\n";
|
||||
"khotkeysrc"."Data_3_5Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_5Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_5Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_5Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_5Triggers"."TriggersCount" = 2;
|
||||
"khotkeysrc"."Data_3_5Triggers0"."GesturePointData" = "0,0.0461748,0.5,0,0,0.0461748,0.0461748,0.5,0,0.125,0.0923495,0.0461748,0.5,0,0.25,0.138524,0.0461748,0.5,0,0.375,0.184699,0.0461748,0.5,0,0.5,0.230874,0.0461748,0.5,0,0.625,0.277049,0.0461748,0.5,0,0.75,0.323223,0.0461748,0.5,0,0.875,0.369398,0.065301,-0.25,0,1,0.434699,0.065301,-0.25,0.125,0.875,0.5,0.065301,-0.25,0.25,0.75,0.565301,0.065301,-0.25,0.375,0.625,0.630602,0.0461748,0,0.5,0.5,0.676777,0.0461748,0,0.625,0.5,0.722951,0.0461748,0,0.75,0.5,0.769126,0.0461748,0,0.875,0.5,0.815301,0.0461748,0.5,1,0.5,0.861476,0.0461748,0.5,1,0.625,0.90765,0.0461748,0.5,1,0.75,0.953825,0.0461748,0.5,1,0.875,1,0,0,1,1";
|
||||
"khotkeysrc"."Data_3_5Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_5Triggers1"."GesturePointData" = "0,0.0416667,0.5,0,0,0.0416667,0.0416667,0.5,0,0.125,0.0833333,0.0416667,0.5,0,0.25,0.125,0.0416667,0.5,0,0.375,0.166667,0.0416667,0.5,0,0.5,0.208333,0.0416667,0.5,0,0.625,0.25,0.0416667,0.5,0,0.75,0.291667,0.0416667,0.5,0,0.875,0.333333,0.0416667,-0.5,0,1,0.375,0.0416667,-0.5,0,0.875,0.416667,0.0416667,-0.5,0,0.75,0.458333,0.0416667,-0.5,0,0.625,0.5,0.0416667,0,0,0.5,0.541667,0.0416667,0,0.125,0.5,0.583333,0.0416667,0,0.25,0.5,0.625,0.0416667,0,0.375,0.5,0.666667,0.0416667,0,0.5,0.5,0.708333,0.0416667,0,0.625,0.5,0.75,0.0416667,0,0.75,0.5,0.791667,0.0416667,0,0.875,0.5,0.833333,0.0416667,0.5,1,0.5,0.875,0.0416667,0.5,1,0.625,0.916667,0.0416667,0.5,1,0.75,0.958333,0.0416667,0.5,1,0.875,1,0,0,1,1";
|
||||
"khotkeysrc"."Data_3_5Triggers1"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_6"."Comment" = "Press, move right, move down, move right, release.\nMozilla-style: Press, move down, move right, release.";
|
||||
"khotkeysrc"."Data_3_6"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_6"."Name" = "Close Tab";
|
||||
"khotkeysrc"."Data_3_6"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_6Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_6Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_6Actions0"."Input" = "Ctrl+W\n";
|
||||
"khotkeysrc"."Data_3_6Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_6Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_6Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_6Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_6Triggers"."TriggersCount" = 2;
|
||||
"khotkeysrc"."Data_3_6Triggers0"."GesturePointData" = "0,0.0625,0,0,0,0.0625,0.0625,0,0.125,0,0.125,0.0625,0,0.25,0,0.1875,0.0625,0,0.375,0,0.25,0.0625,0.5,0.5,0,0.3125,0.0625,0.5,0.5,0.125,0.375,0.0625,0.5,0.5,0.25,0.4375,0.0625,0.5,0.5,0.375,0.5,0.0625,0.5,0.5,0.5,0.5625,0.0625,0.5,0.5,0.625,0.625,0.0625,0.5,0.5,0.75,0.6875,0.0625,0.5,0.5,0.875,0.75,0.0625,0,0.5,1,0.8125,0.0625,0,0.625,1,0.875,0.0625,0,0.75,1,0.9375,0.0625,0,0.875,1,1,0,0,1,1";
|
||||
"khotkeysrc"."Data_3_6Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_6Triggers1"."GesturePointData" = "0,0.0625,0.5,0,0,0.0625,0.0625,0.5,0,0.125,0.125,0.0625,0.5,0,0.25,0.1875,0.0625,0.5,0,0.375,0.25,0.0625,0.5,0,0.5,0.3125,0.0625,0.5,0,0.625,0.375,0.0625,0.5,0,0.75,0.4375,0.0625,0.5,0,0.875,0.5,0.0625,0,0,1,0.5625,0.0625,0,0.125,1,0.625,0.0625,0,0.25,1,0.6875,0.0625,0,0.375,1,0.75,0.0625,0,0.5,1,0.8125,0.0625,0,0.625,1,0.875,0.0625,0,0.75,1,0.9375,0.0625,0,0.875,1,1,0,0,1,1";
|
||||
"khotkeysrc"."Data_3_6Triggers1"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_7"."Comment" = "Press, move up, release.\nConflicts with Opera-style 'Up #2', which is disabled by default.";
|
||||
"khotkeysrc"."Data_3_7"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_7"."Name" = "New Tab";
|
||||
"khotkeysrc"."Data_3_7"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_7Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_7Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_7Actions0"."Input" = "Ctrl+Shift+N";
|
||||
"khotkeysrc"."Data_3_7Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_7Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_7Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_7Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_7Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_7Triggers0"."GesturePointData" = "0,0.125,-0.5,0.5,1,0.125,0.125,-0.5,0.5,0.875,0.25,0.125,-0.5,0.5,0.75,0.375,0.125,-0.5,0.5,0.625,0.5,0.125,-0.5,0.5,0.5,0.625,0.125,-0.5,0.5,0.375,0.75,0.125,-0.5,0.5,0.25,0.875,0.125,-0.5,0.5,0.125,1,0,0,0.5,0";
|
||||
"khotkeysrc"."Data_3_7Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_8"."Comment" = "Press, move down, release.";
|
||||
"khotkeysrc"."Data_3_8"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_8"."Name" = "New Window";
|
||||
"khotkeysrc"."Data_3_8"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_8Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_8Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_8Actions0"."Input" = "Ctrl+N\n";
|
||||
"khotkeysrc"."Data_3_8Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_8Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_8Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_8Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_8Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_8Triggers0"."GesturePointData" = "0,0.125,0.5,0.5,0,0.125,0.125,0.5,0.5,0.125,0.25,0.125,0.5,0.5,0.25,0.375,0.125,0.5,0.5,0.375,0.5,0.125,0.5,0.5,0.5,0.625,0.125,0.5,0.5,0.625,0.75,0.125,0.5,0.5,0.75,0.875,0.125,0.5,0.5,0.875,1,0,0,0.5,1";
|
||||
"khotkeysrc"."Data_3_8Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."Data_3_9"."Comment" = "Press, move up, move down, release.";
|
||||
"khotkeysrc"."Data_3_9"."Enabled" = true;
|
||||
"khotkeysrc"."Data_3_9"."Name" = "Reload";
|
||||
"khotkeysrc"."Data_3_9"."Type" = "SIMPLE_ACTION_DATA";
|
||||
"khotkeysrc"."Data_3_9Actions"."ActionsCount" = 1;
|
||||
"khotkeysrc"."Data_3_9Actions0"."DestinationWindow" = 2;
|
||||
"khotkeysrc"."Data_3_9Actions0"."Input" = "F5";
|
||||
"khotkeysrc"."Data_3_9Actions0"."Type" = "KEYBOARD_INPUT";
|
||||
"khotkeysrc"."Data_3_9Conditions"."Comment" = "";
|
||||
"khotkeysrc"."Data_3_9Conditions"."ConditionsCount" = 0;
|
||||
"khotkeysrc"."Data_3_9Triggers"."Comment" = "Gesture_triggers";
|
||||
"khotkeysrc"."Data_3_9Triggers"."TriggersCount" = 1;
|
||||
"khotkeysrc"."Data_3_9Triggers0"."GesturePointData" = "0,0.0625,-0.5,0.5,1,0.0625,0.0625,-0.5,0.5,0.875,0.125,0.0625,-0.5,0.5,0.75,0.1875,0.0625,-0.5,0.5,0.625,0.25,0.0625,-0.5,0.5,0.5,0.3125,0.0625,-0.5,0.5,0.375,0.375,0.0625,-0.5,0.5,0.25,0.4375,0.0625,-0.5,0.5,0.125,0.5,0.0625,0.5,0.5,0,0.5625,0.0625,0.5,0.5,0.125,0.625,0.0625,0.5,0.5,0.25,0.6875,0.0625,0.5,0.5,0.375,0.75,0.0625,0.5,0.5,0.5,0.8125,0.0625,0.5,0.5,0.625,0.875,0.0625,0.5,0.5,0.75,0.9375,0.0625,0.5,0.5,0.875,1,0,0,0.5,1";
|
||||
"khotkeysrc"."Data_3_9Triggers0"."Type" = "GESTURE";
|
||||
"khotkeysrc"."General"."AllowKDEAppsToRememberWindowPositions" = "";
|
||||
"khotkeysrc"."General"."BrowserApplication" = "";
|
||||
"khotkeysrc"."Gestures"."Disabled" = true;
|
||||
"khotkeysrc"."Gestures"."MouseButton" = 2;
|
||||
"khotkeysrc"."Gestures"."Timeout" = 300;
|
||||
"khotkeysrc"."GesturesExclude"."Comment" = "";
|
||||
"khotkeysrc"."GesturesExclude"."WindowsCount" = 0;
|
||||
"khotkeysrc"."KDE"."AnimationDurationFactor" = "";
|
||||
"khotkeysrc"."KDE"."ShowDeleteCommand" = "";
|
||||
"khotkeysrc"."KDE"."SingleClick" = "";
|
||||
"khotkeysrc"."KDE"."widgetStyle" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Allow Expansion" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Automatically select filename extension" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Breadcrumb Navigation" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Decoration position" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."LocationCombo Completionmode" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."PathCombo Completionmode" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Show Bookmarks" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Show Full Path" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Show Inline Previews" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Show Preview" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Show Speedbar" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Show hidden files" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Sort by" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Sort directories first" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Sort hidden files last" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Sort reversed" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."Speedbar Width" = "";
|
||||
"khotkeysrc"."KFileDialog Settings"."View Style" = "";
|
||||
"khotkeysrc"."KShortcutsDialog Settings"."Dialog Size" = "";
|
||||
"khotkeysrc"."Main"."AlreadyImported" = "defaults,kde32b1,konqueror_gestures_kde321";
|
||||
"khotkeysrc"."Main"."Disabled" = false;
|
||||
"khotkeysrc"."PreviewSettings"."MaximumRemoteSize" = "";
|
||||
"khotkeysrc"."Voice"."Shortcut" = "";
|
||||
"khotkeysrc"."WM"."activeBackground" = "";
|
||||
"khotkeysrc"."WM"."activeBlend" = "";
|
||||
"khotkeysrc"."WM"."activeForeground" = "";
|
||||
"khotkeysrc"."WM"."inactiveBackground" = "";
|
||||
"khotkeysrc"."WM"."inactiveBlend" = "";
|
||||
"khotkeysrc"."WM"."inactiveForeground" = "";
|
||||
"kiorc"."Confirmations"."ConfirmDelete" = true;
|
||||
"kiorc"."Confirmations"."ConfirmEmptyTrash" = true;
|
||||
"kiorc"."Confirmations"."ConfirmTrash" = false;
|
||||
"kiorc"."Executable scripts"."behaviourOnLaunch" = "alwaysAsk";
|
||||
"krunnerrc"."Plugins"."baloosearchEnabled" = false;
|
||||
"krunnerrc"."Plugins"."locationsEnabled" = true;
|
||||
"krunnerrc"."Plugins"."placesEnabled" = true;
|
||||
"krunnerrc"."Plugins"."recentdocumentsEnabled" = true;
|
||||
"kservicemenurc"."Show"."compressfileitemaction" = true;
|
||||
"kservicemenurc"."Show"."extractfileitemaction" = true;
|
||||
"kservicemenurc"."Show"."forgetfileitemaction" = true;
|
||||
"kservicemenurc"."Show"."installFont" = true;
|
||||
"kservicemenurc"."Show"."kactivitymanagerd_fileitem_linking_plugin" = true;
|
||||
"kservicemenurc"."Show"."kdeconnectfileitemaction" = true;
|
||||
"kservicemenurc"."Show"."kio-admin" = true;
|
||||
"kservicemenurc"."Show"."mountisoaction" = true;
|
||||
"kservicemenurc"."Show"."nextclouddolphinactionplugin" = true;
|
||||
"kservicemenurc"."Show"."runInKonsole" = true;
|
||||
"kservicemenurc"."Show"."setAsWallpaper" = true;
|
||||
"kservicemenurc"."Show"."slideshowfileitemaction" = true;
|
||||
"kservicemenurc"."Show"."tagsfileitemaction" = true;
|
||||
"kwalletrc"."Wallet"."First Use" = false;
|
||||
"kwinrc"."Desktops"."Id_1" = "d1e5e218-1fd9-4946-aa47-dab2f5aac755";
|
||||
"kwinrc"."Desktops"."Id_2" = "389927fc-9c76-4f84-ae0d-011cf76868e6";
|
||||
"kwinrc"."Desktops"."Id_3" = "78f9d3d6-d0dd-4fd5-89fc-0157ada3dff5";
|
||||
"kwinrc"."Desktops"."Id_4" = "a0a9ef6d-975c-4379-8ca1-265e1938d8d1";
|
||||
"kwinrc"."Desktops"."Number" = 4;
|
||||
"kwinrc"."Desktops"."Rows" = 2;
|
||||
"kwinrc"."Effect-diminactive"."Strength" = 15;
|
||||
"kwinrc"."Effect-magiclamp"."AnimationDuration" = 20;
|
||||
"kwinrc"."NightColor"."Active" = true;
|
||||
"kwinrc"."NightColor"."LatitudeFixed" = 52.31865273558926;
|
||||
"kwinrc"."NightColor"."LongitudeFixed" = 5.44;
|
||||
"kwinrc"."NightColor"."Mode" = "Location";
|
||||
"kwinrc"."NightColor"."NightTemperature" = 1400;
|
||||
"kwinrc"."Plugins"."diminactiveEnabled" = true;
|
||||
"kwinrc"."Plugins"."dimscreenEnabled" = true;
|
||||
"kwinrc"."Plugins"."wobblywindowsEnabled" = true;
|
||||
"kwinrc"."Tiling"."padding" = 0;
|
||||
"kwinrc"."Tiling.5242ae1a-0a81-5d7b-ba61-2512b597a159"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}";
|
||||
"kwinrc"."Tiling.57cc57cb-6089-56ec-afba-00ccd06d5508"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}";
|
||||
"kwinrc"."Tiling.5c337d24-acf0-5ac2-9082-ce9cb012bc2c"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"layoutDirection\":\"vertical\",\"tiles\":x5b{\"height\":0.5,\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.5},{\"width\":0.5}x5d},{\"height\":0.5,\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.5},{\"width\":0.5}x5d}x5d,\"width\":1}x5d}";
|
||||
"kwinrc"."Tiling/5242ae1a-0a81-5d7b-ba61-2512b597a159"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}";
|
||||
"kwinrc"."Tiling/57cc57cb-6089-56ec-afba-00ccd06d5508"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}";
|
||||
"kwinrc"."Tiling/5c337d24-acf0-5ac2-9082-ce9cb012bc2c"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.5046875000000002},{\"width\":0.4953124999999998}]}";
|
||||
"kwinrc"."Xwayland"."Scale" = 1;
|
||||
"kxkbrc"."Layout"."Options" = "compose:caps";
|
||||
"kxkbrc"."Layout"."ResetOldOptions" = true;
|
||||
"plasma-localerc"."Formats"."LANG" = "en_US.UTF-8";
|
||||
"plasma-localerc"."Formats"."LC_ADDRESS" = "nl_NL.UTF-8";
|
||||
"plasma-localerc"."Formats"."LC_MEASUREMENT" = "nl_NL.UTF-8";
|
||||
"plasma-localerc"."Formats"."LC_MONETARY" = "nl_NL.UTF-8";
|
||||
"plasma-localerc"."Formats"."LC_NAME" = "nl_NL.UTF-8";
|
||||
"plasma-localerc"."Formats"."LC_NUMERIC" = "nl_NL.UTF-8";
|
||||
"plasma-localerc"."Formats"."LC_PAPER" = "nl_NL.UTF-8";
|
||||
"plasma-localerc"."Formats"."LC_TELEPHONE" = "nl_NL.UTF-8";
|
||||
"plasma-localerc"."Formats"."LC_TIME" = "en_DK.UTF-8";
|
||||
"plasmarc"."Wallpapers"."usersWallpapers" = "";
|
||||
"systemsettingsrc"."KFileDialog Settings"."detailViewIconSize" = 16;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,324 +0,0 @@
|
|||
{
|
||||
osConfig,
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
#TODO remove this after the bug fixed
|
||||
programs.plasma.startup.desktopScript."panels".preCommands = lib.mkForce ''
|
||||
sleep 3
|
||||
[ -f ${config.xdg.configHome}/plasma-org.kde.plasma.desktop-appletsrc ] && rm ${config.xdg.configHome}/plasma-org.kde.plasma.desktop-appletsrc
|
||||
'';
|
||||
#TODO: make the creation of the command file easier, for now this is a nice solution though
|
||||
systemd.user.services."set-kde-connect-commands" = {
|
||||
Install = {
|
||||
WantedBy = ["default.target"];
|
||||
};
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${pkgs.writeShellScript "set-kde-connect-commands" ''
|
||||
#!/run/current-system/sw/bin/bash
|
||||
find ${config.home.homeDirectory}/.config/kdeconnect/ -type d -name 'kdeconnect_runcommand' -execdir cp -rf ${builtins.toPath ./kde-connect-commands} {}/ \; -execdir mv -f {}/kde-connect-commands {}/config \;
|
||||
''}";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
};
|
||||
home.file = {
|
||||
".config/kdeconnect/config" = {
|
||||
text = ''
|
||||
[General]
|
||||
keyAlgorithm=EC
|
||||
name=${osConfig.networking.hostName}
|
||||
customDevices=10.0.0.2,10.0.0.3,10.0.0.4,10.0.0.5
|
||||
'';
|
||||
target = ".config/kdeconnect/config";
|
||||
force = true;
|
||||
};
|
||||
"Games/.directory" = {
|
||||
text = ''
|
||||
[Desktop Entry]
|
||||
Icon=folder-games
|
||||
'';
|
||||
target = "Games/.directory";
|
||||
force = true;
|
||||
};
|
||||
"Code/.directory" = {
|
||||
text = ''
|
||||
[Desktop Entry]
|
||||
Icon=folder-script
|
||||
'';
|
||||
target = "Code/.directory";
|
||||
force = true;
|
||||
};
|
||||
"Writing/.directory" = {
|
||||
text = ''
|
||||
[Desktop Entry]
|
||||
Icon=folder-notes
|
||||
'';
|
||||
target = "Writing/.directory";
|
||||
force = true;
|
||||
};
|
||||
"mimeapps.list" = {
|
||||
text = ''
|
||||
[Added Associations]
|
||||
x-scheme-handler/http=librewolf.desktop;
|
||||
x-scheme-handler/https=librewolf.desktop;
|
||||
|
||||
[Default Applications]
|
||||
x-scheme-handler/discord=vesktop.desktop
|
||||
x-scheme-handler/http=librewolf.desktop;
|
||||
x-scheme-handler/https=librewolf.desktop;
|
||||
x-scheme-handler/sgnl=signal.desktop
|
||||
x-scheme-handler/signalcaptcha=signal.desktop
|
||||
x-scheme-handler/email=thunderbird.desktop
|
||||
x-scheme-handler/text=helix.desktop
|
||||
'';
|
||||
target = ".config/mimeapps.list";
|
||||
force = true;
|
||||
};
|
||||
"librewolf.desktop" = {
|
||||
target = ".config/autostart/librewolf.desktop";
|
||||
source = "${pkgs.librewolf}/share/applications/librewolf.desktop";
|
||||
};
|
||||
"signal.desktop" = {
|
||||
target = ".config/autostart/signal.desktop";
|
||||
source = "${pkgs.signal-desktop}/share/applications/signal.desktop";
|
||||
};
|
||||
"org.kde.konsole.desktop" = {
|
||||
target = ".config/autostart/org.kde.konsole.desktop";
|
||||
source = "${pkgs.kdePackages.konsole}/share/applications/org.kde.konsole.desktop";
|
||||
};
|
||||
"vesktop.desktop" = {
|
||||
target = ".config/autostart/vesktop.desktop";
|
||||
source = "${pkgs.vesktop}/share/applications/vesktop.desktop";
|
||||
};
|
||||
"thunderbird.desktop" = {
|
||||
target = ".config/autostart/thunderbird.desktop";
|
||||
source = "${pkgs.thunderbird}/share/applications/thunderbird.desktop";
|
||||
};
|
||||
"com.nextcloud.desktopclient.nextcloud.desktop" = {
|
||||
target = ".config/autostart/com.nextcloud.desktopclient.nextcloud.desktop";
|
||||
source = "${pkgs.nextcloud-client}/share/applications/com.nextcloud.desktopclient.nextcloud.desktop";
|
||||
};
|
||||
};
|
||||
programs.plasma = {
|
||||
# workspace = {
|
||||
# lookAndFeel = "Catppuccin-Macchiato-Mauve";
|
||||
# colorScheme = "CatppuccinMacchiatoMauve";
|
||||
# cursor.theme = "catppuccin-macchiato-mauve-cursors";
|
||||
# };
|
||||
enable = true;
|
||||
desktop.mouseActions.verticalScroll = "switchVirtualDesktop";
|
||||
kscreenlocker.appearance.wallpaper = "${osConfig.stylix.image}";
|
||||
input.keyboard.options = ["caps:none,compose:caps"];
|
||||
kwin = {
|
||||
nightLight = {
|
||||
enable = true;
|
||||
mode = "location";
|
||||
location = {
|
||||
longitude = "4.88969";
|
||||
latitude = "52.37403";
|
||||
};
|
||||
temperature = {
|
||||
night = 2400;
|
||||
};
|
||||
};
|
||||
effects = {
|
||||
wobblyWindows.enable = true;
|
||||
zoom.mouseTracking = "centered";
|
||||
};
|
||||
virtualDesktops = {
|
||||
number = 4;
|
||||
rows = 2;
|
||||
};
|
||||
};
|
||||
fonts = {
|
||||
fixedWidth = {
|
||||
pointSize = 11;
|
||||
family = "${osConfig.stylix.fonts.monospace.name}";
|
||||
};
|
||||
general = {
|
||||
pointSize = 11;
|
||||
family = "${osConfig.stylix.fonts.serif.name}";
|
||||
};
|
||||
menu = {
|
||||
pointSize = 11;
|
||||
family = "${osConfig.stylix.fonts.sansSerif.name}";
|
||||
};
|
||||
small = {
|
||||
pointSize = 11;
|
||||
family = "${osConfig.stylix.fonts.sansSerif.name}";
|
||||
};
|
||||
toolbar = {
|
||||
pointSize = 11;
|
||||
family = "${osConfig.stylix.fonts.sansSerif.name}";
|
||||
};
|
||||
windowTitle = {
|
||||
pointSize = 11;
|
||||
family = "${osConfig.stylix.fonts.sansSerif.name}";
|
||||
};
|
||||
};
|
||||
panels = [
|
||||
{
|
||||
alignment = "left";
|
||||
floating = true;
|
||||
height = 38;
|
||||
location = "top";
|
||||
screen = "all";
|
||||
widgets = [
|
||||
"org.kde.plasma.appmenu"
|
||||
"org.kde.plasma.panelspacer"
|
||||
"org.kde.milou"
|
||||
"org.kde.plasma.panelspacer"
|
||||
"org.kde.plasma.colorpicker"
|
||||
{
|
||||
systemTray.items = {
|
||||
# We explicitly show bluetooth and battery
|
||||
shown = [
|
||||
"org.kde.plasma.volume"
|
||||
"org.kde.plasma.bluetooth"
|
||||
"org.kde.plasma.brightness"
|
||||
"org.kde.plasma.devicenotifier"
|
||||
"org.kde.kscreen"
|
||||
"org.kde.kdeconnect"
|
||||
"org.kde.plasma.networkmanagement"
|
||||
"org.kde.plasma.battery"
|
||||
"org.kde.plasma.clipboard"
|
||||
"org.kde.plasma.mediacontroller"
|
||||
"org.kde.plasma.notifications"
|
||||
"org.kde.plasma.weather"
|
||||
];
|
||||
# And explicitly hide networkmanagement and volume
|
||||
hidden = [
|
||||
"Xwayland Video Bridge_pipewireToXProxy"
|
||||
"org.kde.plasma.devicenotifier"
|
||||
"org.kde.plasma.keyboardindicator"
|
||||
"org.kde.plasma.keyboardlayout"
|
||||
"org.kde.kscreen"
|
||||
"org.kde.plasma.printmanager"
|
||||
"chrome_status_icon_1"
|
||||
"proton-vpn-app"
|
||||
"Nitrokey App"
|
||||
"qBittorrent"
|
||||
"vlc"
|
||||
"obs"
|
||||
"steam"
|
||||
"nitrokey-app"
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
digitalClock = {
|
||||
calendar.firstDayOfWeek = "monday";
|
||||
time.format = "24h";
|
||||
date = {
|
||||
enable = true;
|
||||
format = "isoDate";
|
||||
position = "belowTime";
|
||||
};
|
||||
timeZone.selected = ["Europe/Amsterdam"];
|
||||
};
|
||||
}
|
||||
"org.kde.plasma.lock_logout"
|
||||
];
|
||||
}
|
||||
{
|
||||
alignment = "center";
|
||||
floating = true;
|
||||
height = 44;
|
||||
hiding = "autohide";
|
||||
maxLength = 1920;
|
||||
minLength = 1200;
|
||||
location = "bottom";
|
||||
screen = "all";
|
||||
widgets = [
|
||||
"org.kde.plasma.kickoff"
|
||||
"org.kde.plasma.panelspacer"
|
||||
{
|
||||
name = "org.kde.plasma.icontasks";
|
||||
config = {
|
||||
General = {
|
||||
launchers = [
|
||||
"applications:librewolf.desktop"
|
||||
"applications:systemsettings.desktop"
|
||||
"applications:org.kde.dolphin.desktop"
|
||||
"applications:signal.desktop"
|
||||
"applications:vesktop.desktop"
|
||||
"applications:thunderbird.desktop"
|
||||
"applications:steam.desktop"
|
||||
"applications:noisetorch.desktop"
|
||||
"applications:org.kde.plasma-systemmonitor.desktop"
|
||||
"applications:org.kde.konsole.desktop"
|
||||
"applications:freetube.desktop"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
"org.kde.plasma.panelspacer"
|
||||
"org.kde.plasma.minimizeall"
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
shortcuts = {
|
||||
"kmix"."decrease_volume_small" = "Shift+Volume Down";
|
||||
"kmix"."increase_volume_small" = "Shift+Volume Up";
|
||||
"kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
||||
"kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
|
||||
"kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
|
||||
"kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
|
||||
"kwin"."Window Operations Menu" = "Alt+F3";
|
||||
"kwin"."Window Quick Tile Bottom" = "Meta+Down";
|
||||
"kwin"."Window Quick Tile Left" = "Meta+Left";
|
||||
"kwin"."Window Quick Tile Right" = "Meta+Right";
|
||||
"kwin"."Window Quick Tile Top" = "Meta+Up";
|
||||
"kwin"."Window to Next Screen" = "Meta+Shift+Right";
|
||||
"kwin"."Window to Previous Desktop" = "none,,Window to Previous Desktop";
|
||||
"kwin"."Window to Previous Screen" = "Meta+Shift+Left";
|
||||
"org_kde_powerdevil"."Decrease Screen Brightness" = ["Monitor Brightness Down" "Ctrl+Volume Down"];
|
||||
"org_kde_powerdevil"."Decrease Screen Brightness Small" = ["Monitor Brightness Down" "Ctrl+Shift+Volume Down"];
|
||||
"org_kde_powerdevil"."Increase Screen Brightness" = ["Monitor Brightness Up" "Ctrl+Volume Up"];
|
||||
"org_kde_powerdevil"."Increase Screen Brightness Small" = ["Shift+Monitor Brightness Up" "Ctrl+Shift+Volume Up"];
|
||||
"services/org.kde.krunner.desktop"."_launch" = ["Alt+Space" "Alt+F2" "Ctrl+Shift+Space" "Search"];
|
||||
"services/org.kde.plasma-systemmonitor.desktop"."_launch" = "Ctrl+Esc";
|
||||
"services/org.kde.spectacle.desktop"."ActiveWindowScreenShot" = ["Meta+Print" "Ctrl+!"];
|
||||
"services/org.kde.spectacle.desktop"."CurrentMonitorScreenShot" = "Ctrl+#";
|
||||
"services/org.kde.spectacle.desktop"."FullScreenScreenShot" = ["Ctrl+$" "Shift+Print"];
|
||||
"services/org.kde.spectacle.desktop"."OpenWithoutScreenshot" = "Ctrl+^";
|
||||
"services/org.kde.spectacle.desktop"."RectangularRegionScreenShot" = ["Ctrl+@" "Meta+Shift+Print"];
|
||||
"services/org.kde.spectacle.desktop"."WindowUnderCursorScreenShot" = ["Meta+Ctrl+Print" "Ctrl+%"];
|
||||
"services/org.kde.spectacle.desktop"."_launch" = "Print";
|
||||
"services/services.org.kde.plasma-systemmonitor.desktop"."_launch" = "Ctrl+Esc";
|
||||
"services/services.org.kde.spectacle.desktop"."ActiveWindowScreenShot" = ["" "" "" "" "" "" "Meta+Print" "Ctrl+!"];
|
||||
"services/services.org.kde.spectacle.desktop"."CurrentMonitorScreenShot" = "Ctrl+#";
|
||||
"services/services.org.kde.spectacle.desktop"."FullScreenScreenShot" = ["" "" "" "" "" "" "Ctrl+$" "Shift+Print"];
|
||||
"services/services.org.kde.spectacle.desktop"."OpenWithoutScreenshot" = "Ctrl+^";
|
||||
"services/services.org.kde.spectacle.desktop"."RecordWindow" = [];
|
||||
"services/services.org.kde.spectacle.desktop"."RectangularRegionScreenShot" = ["" "" "" "" "" "" "Ctrl+@" "Meta+Shift+Print"];
|
||||
"services/services.org.kde.spectacle.desktop"."WindowUnderCursorScreenShot" = ["" "" "" "" "" "" "Meta+Ctrl+Print" "Ctrl+%"];
|
||||
"services/services.org.kde.spectacle.desktop"."_launch" = "Print";
|
||||
"services/services.services.org.kde.plasma-systemmonitor.desktop"."_launch" = "Ctrl+Esc";
|
||||
"services/services.services.org.kde.spectacle.desktop"."ActiveWindowScreenShot" = ["" "" "" "" "" "" "" "Meta+Print" "Ctrl+!"];
|
||||
"services/services.services.org.kde.spectacle.desktop"."CurrentMonitorScreenShot" = "Ctrl+#";
|
||||
"services/services.services.org.kde.spectacle.desktop"."FullScreenScreenShot" = ["" "" "" "" "" "" "" "Ctrl+$" "Shift+Print"];
|
||||
"services/services.services.org.kde.spectacle.desktop"."OpenWithoutScreenshot" = "Ctrl+^";
|
||||
"services/services.services.org.kde.spectacle.desktop"."RecordWindow" = [];
|
||||
"services/services.services.org.kde.spectacle.desktop"."RectangularRegionScreenShot" = ["" "" "" "" "" "" "" "Ctrl+@" "Meta+Shift+Print"];
|
||||
"services/services.services.org.kde.spectacle.desktop"."WindowUnderCursorScreenShot" = ["" "" "" "" "" "" "" "Meta+Ctrl+Print" "Ctrl+%"];
|
||||
"services/services.services.org.kde.spectacle.desktop"."_launch" = "Print";
|
||||
};
|
||||
configFile = {
|
||||
kwinrc = {
|
||||
Plugins.rememberwindowpositionsEnabled = true;
|
||||
Script-rememberwindowpositions = {
|
||||
restoreType = 3;
|
||||
whitelist = "org.mozilla.firefox\nfirefox\nlibrewolf\nkonsole\nvesktop\nsignal-dekstop\nthunderbird";
|
||||
};
|
||||
};
|
||||
plasmanotifyrc = {
|
||||
DoNotDisturb.WhenFullscreen = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[General]
|
||||
commands="@ByteArray({\"2574d457_7a99_40a3_8239_24407c7a074d\":{\"command\":\"loginctl unlock-session\",\"name\":\"unlock\"},\"2bbbb9cc_892a_44a1_b097_27b149387511\":{\"command\":\"bluetoothctl disconnect 38:18:4C:11:56:99\",\"name\":\"disconnect headset\"},\"35ad74aa_c1f0_4dd7_a392_2b2676105b62\":{\"command\":\"systemctl hibernate\",\"name\":\"hibernate\"},\"5dd755de_e098_4907_982d_bedba5c3511d\":{\"command\":\"loginctl lock-session\",\"name\":\"lock\"},\"6423946a_b13e_4127_a0d0_0ca38e79fa0f\":{\"command\":\"bluetoothctl connect 38:18:4C:11:56:99\",\"name\":\"connect headset\"},\"690a4134_162b_4851_83a4_bf75722c699a\":{\"command\":\"systemctl suspend\",\"name\":\"suspend\"},\"99ae3913_1757_4ed0_ad7e_91c6f5d740ef\":{\"command\":\"qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \\\"mute\\\"\",\"name\":\"mute\"},\"b11480dd_19f7_49c0_9dcc_3065ddc5150b\":{\"command\":\"qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \\\"mic_mute\\\"\",\"name\":\"mute mic\"},\"bd36530a_9ed5_4345_989d_189c27b3ce00\":{\"command\":\"systemctl reboot\",\"name\":\"reboot\"},\"cf6180f7_e4bd_4f15_a9d1_19ed14e99913\":{\"command\":\"file=\\\"$HOME/Images/WebcamImage_$(date \\\"+%Y%m%d_%H%M%S\\\").jpg\\\"; ffmpeg -f video4linux2 -s 1280x720 -i /dev/video0 -ss 0:0:2 -frames 1 \\\"${file}\\\" && kdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share \\\"${file}\\\"\",\"name\":\"webcam to phone\"},\"d31a3cab_bb6a_459d_89fb_533d0d8fec61\":{\"command\":\"systemctl poweroff\",\"name\":\"shutdown\"},\"f08e1a64_53be_41da_b942_e05e45f1d69c\":{\"command\":\"qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \\\"decrease_volume\\\"\",\"name\":\"volume down\"},\"fbd67152_2a58_4d5d_a210_982fa0eeb171\":{\"command\":\"qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \\\"increase_volume\\\"\",\"name\":\"volume up\"},\"fc3adde9_7049_4166_bcda_a74d13ec91eb\":{\"command\":\"file=/tmp/$(hostname)_$(date \\\"+%Y%m%d_%H%M%S\\\").png; spectacle -bo \\\"${file}\\\" && while ! [ -f \\\"${file}\\\" ]; do sleep 0.5; done && kdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share \\\"${file}\\\"\",\"name\":\"screenshot to phone\"}})"
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{...}: {
|
||||
home.file."settings.json" = {
|
||||
source = ./settings.json;
|
||||
target = ".config/vesktop/settings/settings.json";
|
||||
force = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,602 +0,0 @@
|
|||
{
|
||||
"autoUpdate": true,
|
||||
"autoUpdateNotification": false,
|
||||
"useQuickCss": true,
|
||||
"themeLinks": [],
|
||||
"enabledThemes": [
|
||||
"stylix.theme.css"
|
||||
],
|
||||
"enableReactDevtools": false,
|
||||
"frameless": false,
|
||||
"transparent": false,
|
||||
"winCtrlQ": false,
|
||||
"disableMinSize": false,
|
||||
"winNativeTitleBar": false,
|
||||
"plugins": {
|
||||
"ChatInputButtonAPI": {
|
||||
"enabled": true
|
||||
},
|
||||
"CommandsAPI": {
|
||||
"enabled": true
|
||||
},
|
||||
"MemberListDecoratorsAPI": {
|
||||
"enabled": false
|
||||
},
|
||||
"MessageAccessoriesAPI": {
|
||||
"enabled": true
|
||||
},
|
||||
"MessageDecorationsAPI": {
|
||||
"enabled": false
|
||||
},
|
||||
"MessageEventsAPI": {
|
||||
"enabled": true
|
||||
},
|
||||
"MessagePopoverAPI": {
|
||||
"enabled": false
|
||||
},
|
||||
"MessageUpdaterAPI": {
|
||||
"enabled": false
|
||||
},
|
||||
"ServerListAPI": {
|
||||
"enabled": false
|
||||
},
|
||||
"UserSettingsAPI": {
|
||||
"enabled": true
|
||||
},
|
||||
"AccountPanelServerProfile": {
|
||||
"enabled": false
|
||||
},
|
||||
"AlwaysAnimate": {
|
||||
"enabled": false
|
||||
},
|
||||
"AlwaysExpandRoles": {
|
||||
"enabled": false
|
||||
},
|
||||
"AlwaysTrust": {
|
||||
"enabled": true,
|
||||
"domain": true,
|
||||
"file": true
|
||||
},
|
||||
"AnonymiseFileNames": {
|
||||
"enabled": true,
|
||||
"anonymiseByDefault": true,
|
||||
"method": 0,
|
||||
"randomisedLength": 7
|
||||
},
|
||||
"AppleMusicRichPresence": {
|
||||
"enabled": false
|
||||
},
|
||||
"WebRichPresence (arRPC)": {
|
||||
"enabled": false
|
||||
},
|
||||
"BANger": {
|
||||
"enabled": false
|
||||
},
|
||||
"BetterFolders": {
|
||||
"enabled": false
|
||||
},
|
||||
"BetterGifAltText": {
|
||||
"enabled": false
|
||||
},
|
||||
"BetterGifPicker": {
|
||||
"enabled": false
|
||||
},
|
||||
"BetterNotesBox": {
|
||||
"enabled": false
|
||||
},
|
||||
"BetterRoleContext": {
|
||||
"enabled": false
|
||||
},
|
||||
"BetterRoleDot": {
|
||||
"enabled": false
|
||||
},
|
||||
"BetterSessions": {
|
||||
"enabled": false
|
||||
},
|
||||
"BetterSettings": {
|
||||
"enabled": false
|
||||
},
|
||||
"BetterUploadButton": {
|
||||
"enabled": false
|
||||
},
|
||||
"BiggerStreamPreview": {
|
||||
"enabled": false
|
||||
},
|
||||
"BlurNSFW": {
|
||||
"enabled": false
|
||||
},
|
||||
"CallTimer": {
|
||||
"enabled": false
|
||||
},
|
||||
"ClearURLs": {
|
||||
"enabled": false
|
||||
},
|
||||
"ClientTheme": {
|
||||
"enabled": false
|
||||
},
|
||||
"ColorSighted": {
|
||||
"enabled": false
|
||||
},
|
||||
"ConsoleJanitor": {
|
||||
"enabled": false
|
||||
},
|
||||
"ConsoleShortcuts": {
|
||||
"enabled": false
|
||||
},
|
||||
"CopyEmojiMarkdown": {
|
||||
"enabled": false
|
||||
},
|
||||
"CopyFileContents": {
|
||||
"enabled": false
|
||||
},
|
||||
"CopyUserURLs": {
|
||||
"enabled": false
|
||||
},
|
||||
"CrashHandler": {
|
||||
"enabled": true
|
||||
},
|
||||
"CtrlEnterSend": {
|
||||
"enabled": false
|
||||
},
|
||||
"CustomRPC": {
|
||||
"enabled": false
|
||||
},
|
||||
"CustomIdle": {
|
||||
"enabled": false
|
||||
},
|
||||
"Dearrow": {
|
||||
"enabled": false
|
||||
},
|
||||
"Decor": {
|
||||
"enabled": false
|
||||
},
|
||||
"DisableCallIdle": {
|
||||
"enabled": false
|
||||
},
|
||||
"DontRoundMyTimestamps": {
|
||||
"enabled": false
|
||||
},
|
||||
"EmoteCloner": {
|
||||
"enabled": false
|
||||
},
|
||||
"Experiments": {
|
||||
"enabled": false
|
||||
},
|
||||
"F8Break": {
|
||||
"enabled": false
|
||||
},
|
||||
"FakeNitro": {
|
||||
"enabled": true,
|
||||
"enableEmojiBypass": true,
|
||||
"emojiSize": 48,
|
||||
"transformEmojis": true,
|
||||
"enableStickerBypass": true,
|
||||
"stickerSize": 160,
|
||||
"transformStickers": true,
|
||||
"transformCompoundSentence": false,
|
||||
"enableStreamQualityBypass": true,
|
||||
"useHyperLinks": true,
|
||||
"hyperLinkText": "{{NAME}}",
|
||||
"disableEmbedPermissionCheck": false
|
||||
},
|
||||
"FakeProfileThemes": {
|
||||
"enabled": false
|
||||
},
|
||||
"FavoriteEmojiFirst": {
|
||||
"enabled": false
|
||||
},
|
||||
"FavoriteGifSearch": {
|
||||
"enabled": false
|
||||
},
|
||||
"FixCodeblockGap": {
|
||||
"enabled": false
|
||||
},
|
||||
"FixSpotifyEmbeds": {
|
||||
"enabled": false
|
||||
},
|
||||
"FixYoutubeEmbeds": {
|
||||
"enabled": false
|
||||
},
|
||||
"ForceOwnerCrown": {
|
||||
"enabled": false
|
||||
},
|
||||
"FriendInvites": {
|
||||
"enabled": false
|
||||
},
|
||||
"FriendsSince": {
|
||||
"enabled": false
|
||||
},
|
||||
"FullSearchContext": {
|
||||
"enabled": false
|
||||
},
|
||||
"GameActivityToggle": {
|
||||
"enabled": false
|
||||
},
|
||||
"GifPaste": {
|
||||
"enabled": false
|
||||
},
|
||||
"GreetStickerPicker": {
|
||||
"enabled": false
|
||||
},
|
||||
"HideAttachments": {
|
||||
"enabled": false
|
||||
},
|
||||
"iLoveSpam": {
|
||||
"enabled": false
|
||||
},
|
||||
"IgnoreActivities": {
|
||||
"enabled": false
|
||||
},
|
||||
"ImageLink": {
|
||||
"enabled": false
|
||||
},
|
||||
"ImageZoom": {
|
||||
"enabled": false
|
||||
},
|
||||
"ImplicitRelationships": {
|
||||
"enabled": false
|
||||
},
|
||||
"InvisibleChat": {
|
||||
"enabled": false
|
||||
},
|
||||
"KeepCurrentChannel": {
|
||||
"enabled": false
|
||||
},
|
||||
"LastFMRichPresence": {
|
||||
"enabled": false
|
||||
},
|
||||
"LoadingQuotes": {
|
||||
"enabled": false
|
||||
},
|
||||
"MemberCount": {
|
||||
"enabled": true,
|
||||
"memberList": true,
|
||||
"toolTip": true
|
||||
},
|
||||
"MentionAvatars": {
|
||||
"enabled": false
|
||||
},
|
||||
"MessageClickActions": {
|
||||
"enabled": false
|
||||
},
|
||||
"MessageLatency": {
|
||||
"enabled": false
|
||||
},
|
||||
"MessageLinkEmbeds": {
|
||||
"enabled": false
|
||||
},
|
||||
"MessageLogger": {
|
||||
"enabled": false
|
||||
},
|
||||
"MessageTags": {
|
||||
"enabled": false
|
||||
},
|
||||
"MoreCommands": {
|
||||
"enabled": false
|
||||
},
|
||||
"MoreKaomoji": {
|
||||
"enabled": true
|
||||
},
|
||||
"MoreUserTags": {
|
||||
"enabled": false
|
||||
},
|
||||
"Moyai": {
|
||||
"enabled": false
|
||||
},
|
||||
"MutualGroupDMs": {
|
||||
"enabled": false
|
||||
},
|
||||
"NewGuildSettings": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoBlockedMessages": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoDevtoolsWarning": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoF1": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoMaskedUrlPaste": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoMosaic": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoOnboardingDelay": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoPendingCount": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoProfileThemes": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoReplyMention": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoScreensharePreview": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoServerEmojis": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoTypingAnimation": {
|
||||
"enabled": false
|
||||
},
|
||||
"NoUnblockToJump": {
|
||||
"enabled": false
|
||||
},
|
||||
"NormalizeMessageLinks": {
|
||||
"enabled": false
|
||||
},
|
||||
"NotificationVolume": {
|
||||
"enabled": false
|
||||
},
|
||||
"NSFWGateBypass": {
|
||||
"enabled": false
|
||||
},
|
||||
"OnePingPerDM": {
|
||||
"enabled": false
|
||||
},
|
||||
"oneko": {
|
||||
"enabled": false
|
||||
},
|
||||
"OpenInApp": {
|
||||
"enabled": false
|
||||
},
|
||||
"OverrideForumDefaults": {
|
||||
"enabled": false
|
||||
},
|
||||
"PartyMode": {
|
||||
"enabled": false
|
||||
},
|
||||
"PauseInvitesForever": {
|
||||
"enabled": false
|
||||
},
|
||||
"PermissionFreeWill": {
|
||||
"enabled": false
|
||||
},
|
||||
"PermissionsViewer": {
|
||||
"enabled": false
|
||||
},
|
||||
"petpet": {
|
||||
"enabled": true
|
||||
},
|
||||
"PictureInPicture": {
|
||||
"enabled": false
|
||||
},
|
||||
"PinDMs": {
|
||||
"enabled": false
|
||||
},
|
||||
"PlainFolderIcon": {
|
||||
"enabled": false
|
||||
},
|
||||
"PlatformIndicators": {
|
||||
"enabled": false
|
||||
},
|
||||
"PreviewMessage": {
|
||||
"enabled": false
|
||||
},
|
||||
"QuickMention": {
|
||||
"enabled": false
|
||||
},
|
||||
"QuickReply": {
|
||||
"enabled": false
|
||||
},
|
||||
"ReactErrorDecoder": {
|
||||
"enabled": false
|
||||
},
|
||||
"ReadAllNotificationsButton": {
|
||||
"enabled": false
|
||||
},
|
||||
"RelationshipNotifier": {
|
||||
"enabled": false
|
||||
},
|
||||
"ReplaceGoogleSearch": {
|
||||
"enabled": false
|
||||
},
|
||||
"ReplyTimestamp": {
|
||||
"enabled": false
|
||||
},
|
||||
"RevealAllSpoilers": {
|
||||
"enabled": false
|
||||
},
|
||||
"ReverseImageSearch": {
|
||||
"enabled": false
|
||||
},
|
||||
"ReviewDB": {
|
||||
"enabled": false
|
||||
},
|
||||
"RoleColorEverywhere": {
|
||||
"enabled": false
|
||||
},
|
||||
"SecretRingToneEnabler": {
|
||||
"enabled": false
|
||||
},
|
||||
"Summaries": {
|
||||
"enabled": false
|
||||
},
|
||||
"SendTimestamps": {
|
||||
"enabled": true,
|
||||
"replaceMessageContents": true
|
||||
},
|
||||
"ServerInfo": {
|
||||
"enabled": false
|
||||
},
|
||||
"ServerListIndicators": {
|
||||
"enabled": false
|
||||
},
|
||||
"ShikiCodeblocks": {
|
||||
"enabled": true,
|
||||
"useDevIcon": "COLOR",
|
||||
"theme": "https://raw.githubusercontent.com/shikijs/shiki/0b28ad8ccfbf2615f2d9d38ea8255416b8ac3043/packages/shiki/themes/dracula.json",
|
||||
"tryHljs": "SECONDARY",
|
||||
"bgOpacity": 100
|
||||
},
|
||||
"ShowAllMessageButtons": {
|
||||
"enabled": false
|
||||
},
|
||||
"ShowConnections": {
|
||||
"enabled": false
|
||||
},
|
||||
"ShowHiddenChannels": {
|
||||
"enabled": false
|
||||
},
|
||||
"ShowHiddenThings": {
|
||||
"enabled": false
|
||||
},
|
||||
"ShowMeYourName": {
|
||||
"enabled": false
|
||||
},
|
||||
"ShowTimeoutDuration": {
|
||||
"enabled": false
|
||||
},
|
||||
"SilentMessageToggle": {
|
||||
"enabled": false
|
||||
},
|
||||
"SilentTyping": {
|
||||
"enabled": false
|
||||
},
|
||||
"SortFriendRequests": {
|
||||
"enabled": false
|
||||
},
|
||||
"SpotifyControls": {
|
||||
"enabled": false
|
||||
},
|
||||
"SpotifyCrack": {
|
||||
"enabled": false
|
||||
},
|
||||
"SpotifyShareCommands": {
|
||||
"enabled": false
|
||||
},
|
||||
"StartupTimings": {
|
||||
"enabled": false
|
||||
},
|
||||
"StickerPaste": {
|
||||
"enabled": false
|
||||
},
|
||||
"StreamerModeOnStream": {
|
||||
"enabled": false
|
||||
},
|
||||
"SuperReactionTweaks": {
|
||||
"enabled": false
|
||||
},
|
||||
"TextReplace": {
|
||||
"enabled": false
|
||||
},
|
||||
"ThemeAttributes": {
|
||||
"enabled": false
|
||||
},
|
||||
"Translate": {
|
||||
"enabled": false
|
||||
},
|
||||
"TypingIndicator": {
|
||||
"enabled": false
|
||||
},
|
||||
"TypingTweaks": {
|
||||
"enabled": false
|
||||
},
|
||||
"Unindent": {
|
||||
"enabled": false
|
||||
},
|
||||
"UnlockedAvatarZoom": {
|
||||
"enabled": false
|
||||
},
|
||||
"UnsuppressEmbeds": {
|
||||
"enabled": false
|
||||
},
|
||||
"UserVoiceShow": {
|
||||
"enabled": false
|
||||
},
|
||||
"USRBG": {
|
||||
"enabled": false
|
||||
},
|
||||
"ValidReply": {
|
||||
"enabled": false
|
||||
},
|
||||
"ValidUser": {
|
||||
"enabled": false
|
||||
},
|
||||
"VoiceChatDoubleClick": {
|
||||
"enabled": false
|
||||
},
|
||||
"VcNarrator": {
|
||||
"enabled": false
|
||||
},
|
||||
"VencordToolbox": {
|
||||
"enabled": false
|
||||
},
|
||||
"ViewIcons": {
|
||||
"enabled": false
|
||||
},
|
||||
"ViewRaw": {
|
||||
"enabled": false
|
||||
},
|
||||
"VoiceDownload": {
|
||||
"enabled": false
|
||||
},
|
||||
"VoiceMessages": {
|
||||
"enabled": false
|
||||
},
|
||||
"VolumeBooster": {
|
||||
"enabled": false
|
||||
},
|
||||
"WebKeybinds": {
|
||||
"enabled": true
|
||||
},
|
||||
"WebScreenShareFixes": {
|
||||
"enabled": true
|
||||
},
|
||||
"WhoReacted": {
|
||||
"enabled": false
|
||||
},
|
||||
"XSOverlay": {
|
||||
"enabled": false
|
||||
},
|
||||
"YoutubeAdblock": {
|
||||
"enabled": true
|
||||
},
|
||||
"NoTrack": {
|
||||
"enabled": true,
|
||||
"disableAnalytics": true
|
||||
},
|
||||
"WebContextMenus": {
|
||||
"enabled": true,
|
||||
"addBack": true
|
||||
},
|
||||
"Settings": {
|
||||
"enabled": true,
|
||||
"settingsLocation": "aboveNitro"
|
||||
},
|
||||
"SupportHelper": {
|
||||
"enabled": true
|
||||
},
|
||||
"UserMessagesPronouns": {
|
||||
"enabled": true,
|
||||
"showInMessages": true,
|
||||
"showSelf": true,
|
||||
"pronounSource": 0,
|
||||
"pronounsFormat": "LOWERCASE"
|
||||
},
|
||||
"DynamicImageModalAPI": {
|
||||
"enabled": false
|
||||
},
|
||||
"FixImagesQuality": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"timeout": 5000,
|
||||
"position": "bottom-right",
|
||||
"useNative": "not-focused",
|
||||
"logLimit": 50
|
||||
},
|
||||
"cloud": {
|
||||
"authenticated": false,
|
||||
"url": "https://api.vencord.dev/",
|
||||
"settingsSync": false,
|
||||
"settingsSyncVersion": 1734993730812
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,11 @@
|
|||
{...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
./lillian.nix
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILhwA+ZdP2tEBYQNdzLHZzFHxocyeqzhXI6tFpaZA3PZ lillian@EDI
|
||||
|
|
@ -1,6 +1,13 @@
|
|||
# This is your home-manager configuration file
|
||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
|
||||
{pkgs, ...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
# If you want to use modules your own flake exports (from modules/home-manager):
|
||||
|
|
@ -16,10 +23,8 @@
|
|||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
lutris
|
||||
android-tools
|
||||
];
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
home.stateVersion = "26.05";
|
||||
home.stateVersion = "24.11";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,11 @@
|
|||
{...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
./lillian.nix
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH30G2PJOnI6jnAtxOQV0SpLFUva0adarLZLvaoZvjGE lillian@GLaDOS
|
||||
|
|
@ -1,8 +1,11 @@
|
|||
# This is your home-manager configuration file
|
||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
|
|
@ -20,44 +23,15 @@
|
|||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
heroic
|
||||
r2modman
|
||||
ryubing
|
||||
lutris
|
||||
vscodium
|
||||
unrar
|
||||
intiface-central
|
||||
];
|
||||
home.file = {
|
||||
nextcloud = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/run/media/lillian/big-SSD/Nextcloud/";
|
||||
target = "Nextcloud";
|
||||
};
|
||||
};
|
||||
|
||||
programs.mangohud = {
|
||||
enable = true;
|
||||
# enableSessionWide = true;
|
||||
};
|
||||
|
||||
programs.plasma.configFile.kwinrc = {
|
||||
"Tiling/Desktop_1/593113fc-a693-4eb3-acfd-6048b9bcfffd".padding = 0;
|
||||
"Tiling/Desktop_1/593113fc-a693-4eb3-acfd-6048b9bcfffd".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.5},{\"width\":0.5}]}";
|
||||
"Tiling/Desktop_1/98696f59-53d4-4598-8e46-1a0feee68c27".padding = 0;
|
||||
"Tiling/Desktop_1/98696f59-53d4-4598-8e46-1a0feee68c27".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.5},{\"width\":0.5}]}";
|
||||
"Tiling/Desktop_2/593113fc-a693-4eb3-acfd-6048b9bcfffd".padding = 0;
|
||||
"Tiling/Desktop_2/593113fc-a693-4eb3-acfd-6048b9bcfffd".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.5},{\"width\":0.5}]}";
|
||||
"Tiling/Desktop_2/98696f59-53d4-4598-8e46-1a0feee68c27".padding = 0;
|
||||
"Tiling/Desktop_2/98696f59-53d4-4598-8e46-1a0feee68c27".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.5},{\"width\":0.5}]}";
|
||||
"Tiling/Desktop_3/593113fc-a693-4eb3-acfd-6048b9bcfffd".padding = 0;
|
||||
"Tiling/Desktop_3/593113fc-a693-4eb3-acfd-6048b9bcfffd".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.5},{\"width\":0.5}]}";
|
||||
"Tiling/Desktop_3/98696f59-53d4-4598-8e46-1a0feee68c27".padding = 0;
|
||||
"Tiling/Desktop_3/98696f59-53d4-4598-8e46-1a0feee68c27".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.5},{\"width\":0.5}]}";
|
||||
"Tiling/Desktop_4/593113fc-a693-4eb3-acfd-6048b9bcfffd".padding = 0;
|
||||
"Tiling/Desktop_4/593113fc-a693-4eb3-acfd-6048b9bcfffd".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.5},{\"width\":0.5}]}";
|
||||
"Tiling/Desktop_4/98696f59-53d4-4598-8e46-1a0feee68c27".padding = 0;
|
||||
"Tiling/Desktop_4/98696f59-53d4-4598-8e46-1a0feee68c27".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.5},{\"width\":0.5}]}";
|
||||
enableSessionWide = true;
|
||||
};
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
home.stateVersion = "26.05";
|
||||
home.stateVersion = "24.11";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,11 @@
|
|||
{...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
./lillian.nix
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKeZHHAEoUh/Ly9F1xUSPZLPNE0Yh/wM2qWgKvlEBa8A lillian@GLaDOS
|
||||
|
|
@ -1,6 +1,13 @@
|
|||
# This is your home-manager configuration file
|
||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
|
||||
{pkgs, ...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
# If you want to use modules your own flake exports (from modules/home-manager):
|
||||
|
|
@ -11,11 +18,13 @@
|
|||
|
||||
# You can also split up your configuration and import pieces of it here:
|
||||
# ./nvim.nix
|
||||
../../desktop
|
||||
../../shared
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
];
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
home.stateVersion = "25.11";
|
||||
home.stateVersion = "24.11";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,11 @@
|
|||
{...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
./lillian.nix
|
||||
|
|
|
|||
|
|
@ -1,6 +1,13 @@
|
|||
# This is your home-manager configuration file
|
||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
|
||||
{pkgs, ...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
# If you want to use modules your own flake exports (from modules/home-manager):
|
||||
|
|
@ -18,5 +25,5 @@
|
|||
];
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
home.stateVersion = "25.05";
|
||||
home.stateVersion = "24.11";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,11 @@
|
|||
{...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
./lillian.nix
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGtwcWXnwOOI8G3NqAMfTeuSuDk9ly5xqwQDH2Iey3u+ lillian@queen
|
||||
|
|
@ -1,6 +1,13 @@
|
|||
# This is your home-manager configuration file
|
||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
|
||||
{...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
# If you want to use modules your own flake exports (from modules/home-manager):
|
||||
|
|
@ -35,5 +42,5 @@
|
|||
};
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
home.stateVersion = "26.05";
|
||||
home.stateVersion = "24.11";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,11 @@
|
|||
{...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
./lillian.nix
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL279XPFj1nzLDozFclntPh8rOcn3d1B5iJNGds9Ray6 lillian@shodan
|
||||
|
|
@ -1,6 +1,13 @@
|
|||
# This is your home-manager configuration file
|
||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
|
||||
{pkgs, ...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
# If you want to use modules your own flake exports (from modules/home-manager):
|
||||
|
|
@ -12,8 +19,11 @@
|
|||
# You can also split up your configuration and import pieces of it here:
|
||||
# ./nvim.nix
|
||||
|
||||
../../desktop/package-configs/plasma-desktop.nix
|
||||
../../desktop/package-configs/firefox.nix
|
||||
../../desktop/package-configs/konsole
|
||||
../../desktop/package-configs/foot
|
||||
../../shared
|
||||
../../desktop
|
||||
];
|
||||
nixpkgs = {
|
||||
# You can add overlays here
|
||||
|
|
@ -28,17 +38,76 @@
|
|||
# });
|
||||
# })
|
||||
];
|
||||
# Configure your nixpkgs instance
|
||||
config = {
|
||||
# Disable if you don't want unfree packages
|
||||
allowUnfree = true;
|
||||
};
|
||||
};
|
||||
|
||||
home = {
|
||||
username = "lillian";
|
||||
homeDirectory = "/home/lillian";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
#Chat:
|
||||
webcord-vencord
|
||||
|
||||
#Gaming:
|
||||
prismlauncher
|
||||
r2modman
|
||||
ryubing
|
||||
ryujinx
|
||||
|
||||
# Multimedia:
|
||||
freetube
|
||||
obs-studio
|
||||
vlc
|
||||
|
||||
# System tools:
|
||||
rage
|
||||
discover
|
||||
flameshot
|
||||
fzf
|
||||
nextcloud-client
|
||||
nitrokey-app
|
||||
protonvpn-gui
|
||||
sops
|
||||
watchmate
|
||||
qbittorrent
|
||||
zsh
|
||||
|
||||
# Theming:
|
||||
catppuccin-cursors
|
||||
(catppuccin-kde.override {
|
||||
flavour = ["macchiato"];
|
||||
accents = ["mauve"];
|
||||
})
|
||||
catppuccin-plymouth
|
||||
catppuccin-sddm-corners
|
||||
|
||||
# Web browsing:
|
||||
firefox
|
||||
ungoogled-chromium
|
||||
];
|
||||
# Make the kde screenlock not require a password :)
|
||||
programs.plasma.kscreenlocker.passwordRequired = false;
|
||||
|
||||
# # Automount services for user
|
||||
# programs.bashmount.enable = true;
|
||||
# services.udiskie = {
|
||||
# enable = true;
|
||||
# automount = true;
|
||||
# notify = false;
|
||||
# tray = "never";
|
||||
# };
|
||||
|
||||
# Enable home-manager and git
|
||||
programs.home-manager.enable = true;
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userEmail = "git@lillianviolet.dev";
|
||||
userName = "Lillian-Violet";
|
||||
};
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
home.stateVersion = "26.05";
|
||||
home.stateVersion = "24.11";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,11 @@
|
|||
{...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
./lillian.nix
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILxXVL6QAiMLwvUYBtXCbkHEh6ENgaEO/rkZWSPJrjLJ lillian@wheatley
|
||||
|
|
@ -1,6 +1,13 @@
|
|||
# This is your home-manager configuration file
|
||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
|
||||
{...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
# If you want to use modules your own flake exports (from modules/home-manager):
|
||||
|
|
@ -11,7 +18,8 @@
|
|||
|
||||
# You can also split up your configuration and import pieces of it here:
|
||||
# ./nvim.nix
|
||||
../../shared
|
||||
../../package-configs/zsh.nix
|
||||
../../package-configs/helix.nix
|
||||
];
|
||||
|
||||
nixpkgs = {
|
||||
|
|
@ -35,5 +43,5 @@
|
|||
};
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
home.stateVersion = "26.05";
|
||||
home.stateVersion = "24.05";
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 158 KiB |
|
|
@ -1,10 +1,12 @@
|
|||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
osConfig,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./ssh
|
||||
./shell/helix
|
||||
./shell/zellij
|
||||
./shell/zsh.nix
|
||||
|
|
@ -12,80 +14,15 @@
|
|||
./shell/eza.nix
|
||||
./shell/hyfetch.nix
|
||||
];
|
||||
|
||||
home = {
|
||||
username = "lillian";
|
||||
homeDirectory = "/home/lillian";
|
||||
file."id_ed25519.pub" = {
|
||||
source = ../hosts/${osConfig.networking.hostName}/id_ed25519.pub;
|
||||
target = ".ssh/id_ed25519.pub";
|
||||
force = true;
|
||||
};
|
||||
|
||||
packages = with pkgs; [
|
||||
# System tools:
|
||||
vscode-langservers-extracted
|
||||
sops
|
||||
zsh
|
||||
bat
|
||||
btop
|
||||
broot
|
||||
lazygit
|
||||
navi
|
||||
nil
|
||||
gh
|
||||
starship
|
||||
zellij
|
||||
];
|
||||
};
|
||||
|
||||
catppuccin = {
|
||||
flavor = "macchiato";
|
||||
btop.enable = true;
|
||||
cache.enable = true;
|
||||
chromium.enable = true;
|
||||
freetube.enable = true;
|
||||
freetube.flavor = "macchiato";
|
||||
};
|
||||
programs = {
|
||||
navi.enable = true;
|
||||
yazi = {
|
||||
enable = true;
|
||||
# package = pkgs.yazi.override {
|
||||
# _7zz = pkgs._7zz.override {useUasm = true;};
|
||||
# };
|
||||
};
|
||||
};
|
||||
# stylix.enable = true;
|
||||
# qt.platformTheme.name = lib.mkForce "kvantum";
|
||||
# qt.style.name = lib.mkForce "kvantum";
|
||||
|
||||
# stylix = {
|
||||
# enable = true;
|
||||
# autoEnable = true;
|
||||
# base16Scheme = {
|
||||
# scheme = "Catppuccin Macchiato";
|
||||
# author = "https://github.com/catppuccin/catppuccin";
|
||||
# base00 = "24273a";
|
||||
# base01 = "1e2030";
|
||||
# base02 = "363a4f";
|
||||
# base03 = "494d64";
|
||||
# base04 = "5b6078";
|
||||
# base05 = "cad3f5";
|
||||
# base06 = "f4dbd6";
|
||||
# base07 = "b7bdf8";
|
||||
# base08 = "ed8796";
|
||||
# base09 = "f5a97f";
|
||||
# base0A = "eed49f";
|
||||
# base0B = "a6da95";
|
||||
# base0C = "8bd5ca";
|
||||
# base0D = "8aadf4";
|
||||
# base0E = "c6a0f6";
|
||||
# base0F = "f0c6c6";
|
||||
# };
|
||||
# image = ./background.jpg;
|
||||
# cursor.package = pkgs.catppuccin-cursors;
|
||||
# cursor.name = "catppuccin-macchiato-mauve-cursors";
|
||||
# cursor.size = 16;
|
||||
# };
|
||||
home.packages = with pkgs; [
|
||||
# System tools:
|
||||
sops
|
||||
zsh
|
||||
bat
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,50 +0,0 @@
|
|||
[
|
||||
{
|
||||
"command": "systemctl poweroff",
|
||||
"name": "shutdown"
|
||||
},
|
||||
{
|
||||
"command": "systemctl reboot",
|
||||
"name": "reboot"
|
||||
},
|
||||
{
|
||||
"command": "systemctl suspend",
|
||||
"name": "suspend"
|
||||
},
|
||||
{
|
||||
"command": "systemctl hibernate",
|
||||
"name": "hibernate"
|
||||
},
|
||||
{
|
||||
"command": "loginctl lock-session",
|
||||
"name": "lock"
|
||||
},
|
||||
{
|
||||
"command": "loginctl unlock-session",
|
||||
"name": "unlock"
|
||||
},
|
||||
{
|
||||
"command": "qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \"mute\"",
|
||||
"name": "mute"
|
||||
},
|
||||
{
|
||||
"command": "qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \"mic_mute\"",
|
||||
"name": "mute mic"
|
||||
},
|
||||
{
|
||||
"command": "file=/tmp/$(hostname)_$(date \"+%Y%m%d_%H%M%S\").png; spectacle -bo \"${file}\" && while ! [ -f \"${file}\" ]; do sleep 0.5; done && kdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share \"${file}\"",
|
||||
"name": "screenshot to phone"
|
||||
},
|
||||
{
|
||||
"command": "file=\"$HOME/Images/WebcamImage_$(date \"+%Y%m%d_%H%M%S\").jpg\"; ffmpeg -f video4linux2 -s 1280x720 -i /dev/video0 -ss 0:0:2 -frames 1 \"${file}\" && kdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share \"${file}\"",
|
||||
"name": "webcam to phone"
|
||||
},
|
||||
{
|
||||
"command": "bluetoothctl connect 38:18:4C:11:56:99",
|
||||
"name": "connect headset"
|
||||
},
|
||||
{
|
||||
"command": "bluetoothctl disconnect 38:18:4C:11:56:99",
|
||||
"name": "disconnect headset"
|
||||
}
|
||||
]
|
||||
|
|
@ -1,7 +1,11 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs.bat-extras; [batdiff batman batgrep batwatch];
|
||||
# catppuccin.enable = true;
|
||||
catppuccin.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{...}: {
|
||||
{lib, ...}: {
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
|
|
|||
|
|
@ -1,58 +1,16 @@
|
|||
{pkgs, ...}: let
|
||||
yazi =
|
||||
pkgs.writeText "open_in_helix_from_yazi.zsh"
|
||||
''
|
||||
#! ~/.nix-profile/bin/zsh
|
||||
files=(''${(fqq)"$( yazi --chooser-file=/dev/stdout | cat )"})
|
||||
zellij action toggle-floating-panes
|
||||
zellij action write 27 # send escape-key
|
||||
zellij action write-chars ":open $files"
|
||||
zellij action write 13 # send enter-key
|
||||
zellij action toggle-floating-panes
|
||||
zellij action close-pane
|
||||
'';
|
||||
jupyter =
|
||||
pkgs.writeText "run_jupyter_from_helix.zsh"
|
||||
''
|
||||
#! ~/.nix-profile/bin/zsh
|
||||
is_new() {
|
||||
new=0;
|
||||
mkdir -p /tmp/rjh;
|
||||
if [[ -a "/tmp/rjh/$(pwd | tr \"/\" -).json" ]]; then
|
||||
new=1
|
||||
fi
|
||||
return $new
|
||||
}
|
||||
|
||||
is_new && zellij run -f -n "jupyter console" -- direnv exec . jupyter console --kernel="$1" -f="/tmp/rjh/$(pwd | tr \"/\" -).json" --ZMQTerminalInteractiveShell.include_other_output=True --ZMQTerminalInteractiveShell.other_output_prefix=''' && sleep 3
|
||||
rm -f /tmp/pipe-rjh
|
||||
mkfifo /tmp/pipe-rjh
|
||||
cat > /tmp/pipe-rjh
|
||||
zellij run -f -n "REPL" -- direnv exec . just send < /tmp/pipe-rjh
|
||||
rm /tmp/pipe-rjh
|
||||
|
||||
'';
|
||||
in {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
|
||||
settings = {
|
||||
# theme = "catppuccin_macchiato"; # Don't need this because the module themes it for us
|
||||
keys.normal.backspace = {
|
||||
b = ":sh zellij run -f -n 'build code' -- direnv exec . just build";
|
||||
r = ":sh zellij run -f -n 'run code' -- direnv exec . just run";
|
||||
t = ":sh zellij run -f -n 'test code' -- direnv exec . just test";
|
||||
g = ":sh zellij run -fc -n 'lazygit' -- lazygit";
|
||||
f = ":sh zellij run --floating -n 'yazi picker' -- zsh ~/.config/helix/open_in_helix_from_yazi.zsh ";
|
||||
j = ":pipe-to just jupyter";
|
||||
};
|
||||
theme = "catppuccin_macchiato";
|
||||
editor = {
|
||||
auto-save = {
|
||||
focus-lost = true;
|
||||
after-delay.enable = true;
|
||||
after-delay.timeout = 3000;
|
||||
};
|
||||
line-number = "relative";
|
||||
lsp.display-messages = true;
|
||||
lsp.display-inlay-hints = true;
|
||||
|
|
@ -78,7 +36,7 @@ in {
|
|||
language-id = "python";
|
||||
auto-format = true;
|
||||
file-types = ["py"];
|
||||
language-servers = ["ruff" "scls" "pylsp"];
|
||||
language-servers = ["ruff" "scls"];
|
||||
}
|
||||
{
|
||||
name = "typst";
|
||||
|
|
@ -116,58 +74,8 @@ in {
|
|||
args = ["-q"];
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "html";
|
||||
language-id = "html";
|
||||
auto-format = true;
|
||||
file-types = ["htm" "html"];
|
||||
language-servers = ["vscode-html-language-server" "vscode-eslint-language-server"];
|
||||
}
|
||||
{
|
||||
name = "css";
|
||||
language-id = "css";
|
||||
auto-format = true;
|
||||
file-types = ["css"];
|
||||
language-servers = ["vscode-css-language-server" "vscode-eslint-language-server"];
|
||||
}
|
||||
{
|
||||
name = "json";
|
||||
language-id = "json";
|
||||
auto-format = true;
|
||||
file-types = ["json"];
|
||||
language-servers = ["vscode-json-language-server" "vscode-eslint-language-server"];
|
||||
}
|
||||
];
|
||||
language-server = {
|
||||
vscode-html-language-server = {
|
||||
command = "vscode-html-language-server";
|
||||
};
|
||||
vscode-css-language-server = {
|
||||
command = "vscode-css-language-server";
|
||||
};
|
||||
vscode-eslint-language-server = {
|
||||
command = "vscode-eslint-language-server";
|
||||
};
|
||||
vscode-json-language-server = {
|
||||
command = "vscode-json-language-server";
|
||||
};
|
||||
pylsp = {
|
||||
config.pylsp.plugins = {
|
||||
flake8 = {enabled = false;};
|
||||
autopep8 = {enabled = false;};
|
||||
mccabe = {enabled = false;};
|
||||
pycodestyle = {enabled = false;};
|
||||
pyflakes = {enabled = false;};
|
||||
pylint = {enabled = false;};
|
||||
yapf = {enabled = false;};
|
||||
ruff = {
|
||||
enabled = true;
|
||||
select = ["E" "F" "UP" "B" "SIM" "I" "PD" "NPY" "PERF" "FURB" "DOC" "TRY" "W" "R" "PL" "TCH" "Q" "PT" "ICN" "C4" "COM" "FBT" "S" "N"];
|
||||
ignore = ["F401"];
|
||||
lineLength = 120;
|
||||
};
|
||||
};
|
||||
};
|
||||
ruff = {
|
||||
command = "ruff-lsp";
|
||||
};
|
||||
|
|
@ -200,17 +108,4 @@ in {
|
|||
target = ".config/helix/external-snippets.toml";
|
||||
};
|
||||
};
|
||||
|
||||
home.file = {
|
||||
"yazi" = {
|
||||
source = "${yazi}";
|
||||
target = ".config/helix/open_in_helix_from_yazi.zsh";
|
||||
};
|
||||
};
|
||||
home.file = {
|
||||
"jupyter" = {
|
||||
source = "${jupyter}";
|
||||
target = ".config/helix/run_jupyter_from_helix.zsh";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,46 +0,0 @@
|
|||
{
|
||||
fetchzip,
|
||||
lib,
|
||||
rustPlatform,
|
||||
git,
|
||||
installShellFiles,
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "helix";
|
||||
version = "25.01.1";
|
||||
|
||||
# This release tarball includes source code for the tree-sitter grammars,
|
||||
# which is not ordinarily part of the repository.
|
||||
src = fetchzip {
|
||||
url = "https://github.com/helix-editor/helix/releases/download/${version}/helix-${version}-source.tar.xz";
|
||||
hash = "";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "";
|
||||
|
||||
nativeBuildInputs = [git installShellFiles];
|
||||
|
||||
env.HELIX_DEFAULT_RUNTIME = "${placeholder "out"}/lib/runtime";
|
||||
|
||||
postInstall = ''
|
||||
# not needed at runtime
|
||||
rm -r runtime/grammars/sources
|
||||
|
||||
mkdir -p $out/lib
|
||||
cp -r runtime $out/lib
|
||||
installShellCompletion contrib/completion/hx.{bash,fish,zsh}
|
||||
mkdir -p $out/share/{applications,icons/hicolor/256x256/apps}
|
||||
cp contrib/Helix.desktop $out/share/applications
|
||||
cp contrib/helix.png $out/share/icons/hicolor/256x256/apps
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Post-modern modal text editor";
|
||||
homepage = "https://helix-editor.com";
|
||||
license = licenses.mpl20;
|
||||
mainProgram = "hx";
|
||||
maintainers = with maintainers; [danth yusdacra zowoq];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,4 +1,9 @@
|
|||
{...}: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.hyfetch = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
@ -10,7 +15,6 @@
|
|||
mode = "horizontal";
|
||||
};
|
||||
backend = "neofetch";
|
||||
pride_month_disable = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,15 +35,16 @@
|
|||
git_branch.style = "bold blue";
|
||||
directory.style = "bold blue";
|
||||
direnv.disabled = false;
|
||||
palette = "catppuccin_${flavor}";
|
||||
}
|
||||
// builtins.fromTOML (builtins.readFile
|
||||
(pkgs.fetchFromGitHub
|
||||
{
|
||||
owner = "catppuccin";
|
||||
repo = "starship";
|
||||
rev = "5906cc3"; # Replace with the latest commit hash
|
||||
sha256 = "sha256-FLHjbClpTqaK4n2qmepCPkb8rocaAo3qeV4Zp1hia0g=";
|
||||
rev = "5629d23"; # Replace with the latest commit hash
|
||||
sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0=";
|
||||
}
|
||||
+ /themes/${flavor}.toml));
|
||||
+ /palettes/${flavor}.toml));
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
|
|
@ -55,106 +56,23 @@
|
|||
|
||||
default_tab_template {
|
||||
pane size=1 borderless=true {
|
||||
plugin location="file:${inputs.zjstatus.packages.${pkgs.stdenv.hostPlatform.system}.default}/bin/zjstatus.wasm" {
|
||||
format_left "#[bg=#24273A,fg=#cad3f5,bold] {session} {mode} {tabs}"
|
||||
format_right "#[bg=#cad3f5,fg=#24273A]#[bg=#cad3f5,fg=#cad3f5]#[bg=#cad3f5,fg=#1e2030,bold]{datetime}#[bg=#24273A,fg=#cad3f5]"
|
||||
plugin location="file:${inputs.zjstatus.packages.${pkgs.system}.default}/bin/zjstatus.wasm" {
|
||||
format_left "#[bg=#1D1D2E,fg=#C9D2F5,bold] {session} {mode} {tabs}"
|
||||
format_right "#[bg=#C9D2F5,fg=#1D1D2E]#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#C9D2F5,fg=#1D1D2E,bold]{datetime}#[bg=#1D1D2E,fg=#C9D2F5]"
|
||||
|
||||
mode_locked "#[fg=magenta,bold] {name} "
|
||||
mode_normal "#[fg=green,bold] {name} "
|
||||
mode_resize "#[fg=orange,bold] {name} "
|
||||
mode_default_to_mode "resize"
|
||||
|
||||
tab_normal "#[bg=#cad3f5,fg=#24273A]#[bg=#cad3f5,fg=#cad3f5]#[bg=#cad3f5,fg=#24273A,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#cad3f5,fg=#cad3f5]#[bg=#24273A,fg=#cad3f5]"
|
||||
tab_active "#[bg=#a6da95,fg=#24273A]#[bg=#a6da95,fg=#a6da95]#[bg=#a6da95,fg=#1e2030,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#a6da95,fg=#a6da95]#[bg=#24273A,fg=#a6da95]"
|
||||
tab_normal "#[bg=#C9D2F5,fg=#1D1D2E]#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#C9D2F5,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#1D1D2E,fg=#C9D2F5]"
|
||||
tab_active "#[bg=#A6DA95,fg=#1D1D2E]#[bg=#A6DA95,fg=#A6DA95]#[bg=#A6DA95,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#A6DA95,fg=#A6DA95]#[bg=#1D1D2E,fg=#A6DA95]"
|
||||
|
||||
tab_sync_indicator " "
|
||||
tab_fullscreen_indicator "□ "
|
||||
tab_floating_indicator " "
|
||||
|
||||
datetime "#[bg=#cad3f5,fg=#1e2030,bold]{format} "
|
||||
datetime_format "%Y-%m-%d %H:%M"
|
||||
datetime_timezone "Europe/Amsterdam"
|
||||
}
|
||||
}
|
||||
children
|
||||
pane size=2 borderless=true {
|
||||
plugin location="status-bar"
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
helix_zellij =
|
||||
pkgs.writeText "helix.kdl"
|
||||
''
|
||||
layout {
|
||||
tab {
|
||||
pane {
|
||||
command "hx"
|
||||
args "."
|
||||
}
|
||||
pane split_direction="vertical" size="20%" {}
|
||||
}
|
||||
swap_tiled_layout name="vertical" {
|
||||
tab max_panes=5 {
|
||||
pane split_direction="vertical" {
|
||||
pane
|
||||
pane { children; }
|
||||
}
|
||||
}
|
||||
tab max_panes=8 {
|
||||
pane split_direction="vertical" {
|
||||
pane { children; }
|
||||
pane { pane; pane; pane; pane; }
|
||||
}
|
||||
}
|
||||
tab max_panes=12 {
|
||||
pane split_direction="vertical" {
|
||||
pane { children; }
|
||||
pane { pane; pane; pane; pane; }
|
||||
pane { pane; pane; pane; pane; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
swap_tiled_layout name="horizontal" {
|
||||
tab max_panes=5 {
|
||||
pane
|
||||
pane
|
||||
}
|
||||
tab max_panes=8 {
|
||||
pane {
|
||||
pane split_direction="vertical" { children; }
|
||||
pane split_direction="vertical" { pane; pane; pane; pane; }
|
||||
}
|
||||
}
|
||||
tab max_panes=12 {
|
||||
pane {
|
||||
pane split_direction="vertical" { children; }
|
||||
pane split_direction="vertical" { pane; pane; pane; pane; }
|
||||
pane split_direction="vertical" { pane; pane; pane; pane; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
default_tab_template {
|
||||
pane size=1 borderless=true {
|
||||
plugin location="file:${inputs.zjstatus.packages.${pkgs.stdenv.hostPlatform.system}.default}/bin/zjstatus.wasm" {
|
||||
format_left "#[bg=#24273A,fg=#cad3f5,bold] {session} {mode} {tabs}"
|
||||
format_right "#[bg=#cad3f5,fg=#24273A]#[bg=#cad3f5,fg=#cad3f5]#[bg=#cad3f5,fg=#1e2030,bold]{datetime}#[bg=#24273A,fg=#cad3f5]"
|
||||
|
||||
mode_locked "#[fg=magenta,bold] {name} "
|
||||
mode_normal "#[fg=green,bold] {name} "
|
||||
mode_resize "#[fg=orange,bold] {name} "
|
||||
mode_default_to_mode "resize"
|
||||
|
||||
tab_normal "#[bg=#cad3f5,fg=#24273A]#[bg=#cad3f5,fg=#cad3f5]#[bg=#cad3f5,fg=#1e2030,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#cad3f5,fg=#cad3f5]#[bg=#24273A,fg=#cad3f5]"
|
||||
tab_active "#[bg=#a6da95,fg=#24273A]#[bg=#a6da95,fg=#a6da95]#[bg=#a6da95,fg=#1e2030,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#a6da95,fg=#a6da95]#[bg=#24273A,fg=#a6da95]"
|
||||
|
||||
tab_sync_indicator " "
|
||||
tab_fullscreen_indicator "□ "
|
||||
tab_floating_indicator " "
|
||||
|
||||
datetime "#[bg=#cad3f5,fg=#1e2030,bold]{format} "
|
||||
datetime "#[bg=#C9D2F5,fg=#1D1D2E,bold]{format} "
|
||||
datetime_format "%Y-%m-%d %H:%M"
|
||||
datetime_timezone "Europe/Amsterdam"
|
||||
}
|
||||
|
|
@ -167,70 +85,23 @@
|
|||
}
|
||||
'';
|
||||
in {
|
||||
home.file."permissions.kdl" = {
|
||||
target = ".cache/zellij/permissions.kdl";
|
||||
text = ''
|
||||
"${inputs.zjstatus.packages.${pkgs.stdenv.hostPlatform.system}.default}/bin/zjstatus.wasm" {
|
||||
ReadApplicationState
|
||||
RunCommands
|
||||
ChangeApplicationState
|
||||
}
|
||||
'';
|
||||
};
|
||||
programs.zellij = {
|
||||
# This autostarts zellij on zsh start
|
||||
# TODO find specific settings for vscode to avoid
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
session_serialization = true;
|
||||
# theme = "catppuccin-macchiato";
|
||||
|
||||
themes = {
|
||||
catppuccin-mocha = {
|
||||
bg = "#585b70";
|
||||
fg = "#cdd6f4";
|
||||
red = "#f38ba8";
|
||||
green = "#a6e3a1";
|
||||
blue = "#89b4fa";
|
||||
yellow = "#f9e2af";
|
||||
magenta = "#f5c2e7";
|
||||
orange = "#fab387";
|
||||
cyan = "#89dceb";
|
||||
black = "#181825";
|
||||
white = "#cdd6f4";
|
||||
};
|
||||
catppuccin-macchiato = {
|
||||
bg = "#5b6078";
|
||||
fg = "#cad3f5";
|
||||
red = "#ed8796";
|
||||
green = "#a6da95";
|
||||
blue = "#8aadf4";
|
||||
yellow = "#eed49f";
|
||||
magenta = "#f5bde6";
|
||||
orange = "#f5a97f";
|
||||
cyan = "#91d7e3";
|
||||
black = "#1e2030";
|
||||
white = "#cad3f5";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.file = {
|
||||
"layout" = {
|
||||
source = "${layout}";
|
||||
target = ".config/zellij/layouts/default.kdl";
|
||||
};
|
||||
|
||||
"helix_zellij" = {
|
||||
source = "${helix_zellij}";
|
||||
target = ".config/zellij/layouts/helix.kdl";
|
||||
};
|
||||
home.file = {
|
||||
"config" = {
|
||||
source = ./zellij.kdl;
|
||||
target = ".config/zellij/config.kdl";
|
||||
};
|
||||
};
|
||||
#home.file = {
|
||||
# "config" = {
|
||||
# source = ./zellij.kdl;
|
||||
# target = ".config/zellij/config.kdl";
|
||||
# };
|
||||
#};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,71 +1,67 @@
|
|||
{pkgs, ...}: {
|
||||
programs = {
|
||||
zoxide = {
|
||||
enable = true;
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
cd = "z";
|
||||
code = "codium ./";
|
||||
ls = "eza";
|
||||
lh = "ls -lah";
|
||||
cat = "bat";
|
||||
tree = "tre";
|
||||
neofetch = "hyfetch";
|
||||
shutdown = "shutdown 0";
|
||||
reboot = "reboot 0";
|
||||
};
|
||||
zsh = {
|
||||
plugins = [
|
||||
{
|
||||
name = "zsh-nix-shell";
|
||||
file = "nix-shell.plugin.zsh";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "chisui";
|
||||
repo = "zsh-nix-shell";
|
||||
rev = "v0.8.0";
|
||||
sha256 = "sha256-Z6EYQdasvpl1P78poj9efnnLj7QQg13Me8x1Ryyw+dM=";
|
||||
};
|
||||
}
|
||||
];
|
||||
autosuggestion.enable = true;
|
||||
enableCompletion = true;
|
||||
historySubstringSearch.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
#zsh-abbr.enable = true;
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
cd = "z";
|
||||
code = "codium ./";
|
||||
ls = "eza";
|
||||
lh = "ls -lah";
|
||||
cat = "bat";
|
||||
tree = "tre";
|
||||
neofetch = "hyfetch";
|
||||
shutdown = "shutdown 0";
|
||||
reboot = "reboot 0";
|
||||
};
|
||||
plugins = [
|
||||
{
|
||||
name = "zsh-nix-shell";
|
||||
file = "nix-shell.plugin.zsh";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "chisui";
|
||||
repo = "zsh-nix-shell";
|
||||
rev = "v0.8.0";
|
||||
sha256 = "sha256-Z6EYQdasvpl1P78poj9efnnLj7QQg13Me8x1Ryyw+dM=";
|
||||
};
|
||||
}
|
||||
# {
|
||||
# name = "terraform";
|
||||
# src = pkgs.fetchFromGitHub {
|
||||
# owner = "macunha1";
|
||||
# repo = "zsh-terraform";
|
||||
# rev = "fd1471d3757f8ed13f56c4426f88616111de2a87";
|
||||
# sha256 = "0z6i9wjjklb4lvr7zjhbphibsyx51psv50gm07mbb0kj9058j6kc";
|
||||
# };
|
||||
# }
|
||||
"git"
|
||||
"colored-man-pages"
|
||||
"colorize"
|
||||
"dirhistory"
|
||||
"dirpersist"
|
||||
"history"
|
||||
"history-substring-search"
|
||||
"fancy-ctrl-z"
|
||||
"git-flow"
|
||||
"isodate"
|
||||
"z"
|
||||
"zsh-interactive-cd"
|
||||
"zsh-navigation-tools"
|
||||
];
|
||||
autosuggestion.enable = true;
|
||||
enableCompletion = true;
|
||||
historySubstringSearch.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
#zsh-abbr.enable = true;
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
"git"
|
||||
"colored-man-pages"
|
||||
"colorize"
|
||||
"dirhistory"
|
||||
"dirpersist"
|
||||
"history"
|
||||
"history-substring-search"
|
||||
"fancy-ctrl-z"
|
||||
"git-flow"
|
||||
"isodate"
|
||||
"z"
|
||||
"zsh-interactive-cd"
|
||||
"zsh-navigation-tools"
|
||||
];
|
||||
};
|
||||
# Extra commands that take more complex forms
|
||||
initContent = ''
|
||||
eval "$(zoxide init --cmd cd zsh)"
|
||||
tre() { command tre "$@" -e && source "/tmp/tre_aliases_$USER" 2>/dev/null; }
|
||||
zhx() { command zellij action new-tab --layout $HOME/.config/zellij/layouts/helix.kdl; }
|
||||
'';
|
||||
};
|
||||
# stuff for zoxide & tre
|
||||
initExtra = ''
|
||||
eval "$(zoxide init --cmd cd zsh)"
|
||||
tre() { command tre "$@" -e && source "/tmp/tre_aliases_$USER" 2>/dev/null; }
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
Host wheatley
|
||||
HostName 10.0.0.1
|
||||
User lillian
|
||||
Port 22
|
||||
|
||||
Host GLaDOS
|
||||
HostName 10.0.0.2
|
||||
User lillian
|
||||
Port 22
|
||||
|
||||
Host EDI
|
||||
HostName 10.0.0.3
|
||||
User lillian
|
||||
Port 22
|
||||
|
||||
Host shodan
|
||||
HostName 10.0.0.4
|
||||
User lillian
|
||||
Port 22
|
||||
|
||||
Host queen
|
||||
HostName gladtherescake.eu
|
||||
User lillian
|
||||
Port 22
|
||||
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{...}: {
|
||||
home.file."sshconfig" = {
|
||||
source = ./config;
|
||||
target = ".config/ssh/config";
|
||||
force = true;
|
||||
};
|
||||
}
|
||||
46
justfile
46
justfile
|
|
@ -1,46 +0,0 @@
|
|||
# Build the nixos configuration and switch to it
|
||||
build:
|
||||
sudo echo "sudo check..." && sudo nixos-rebuild --fallback --log-format internal-json -v switch --flake .# --show-trace |& nom --json
|
||||
|
||||
# Build the nixos configuration bot don't switch to it until a reboot
|
||||
boot:
|
||||
sudo echo "sudo check..." && sudo nixos-rebuild --fallback --log-format internal-json -v boot --flake .# --show-trace |& nom --json
|
||||
|
||||
# Run the nix flake in the nix repl
|
||||
run:
|
||||
nix-repl -f flake:nixpkgs
|
||||
|
||||
# Check the nix configuration for errors
|
||||
test:
|
||||
sudo echo "sudo check..." && sudo nix flake check --show-trace --log-format internal-json -v |& nom --json
|
||||
|
||||
# Update the flake lock
|
||||
update:
|
||||
nix flake update --log-format internal-json -v |& nom --json && zsh
|
||||
|
||||
# Clean your nix store and optimize it
|
||||
clean:
|
||||
sudo nix-collect-garbage
|
||||
sudo nix-store --optimise
|
||||
|
||||
# Set up the commit hook for testing before doing a commit
|
||||
setup:
|
||||
#!/run/current-system/sw/bin/bash -e
|
||||
if [ -s ./.git/hooks/pre-commit ]; then
|
||||
read -p $"This file already contains the following text:
|
||||
$(<./.git/hooks/pre-commit)
|
||||
Do you want to add the test hook (y/N)? (This will NOT delete data)" choice
|
||||
case "$choice" in
|
||||
y|Y ) echo "just test" >> ./.git/hooks/pre-commit && chmod +x ./.git/hooks/pre-commit && echo "Added test hook to pre-commit.";;
|
||||
* ) echo "No test added to pre-commit.";;
|
||||
esac
|
||||
else
|
||||
echo "just test" >> ./.git/hooks/pre-commit && chmod +x ./.git/hooks/pre-commit
|
||||
fi
|
||||
|
||||
# Make sure all the git actions of pulling, adding all files, committing, and pushing are done in one command
|
||||
push:
|
||||
git pull
|
||||
git add *
|
||||
read -e -p "Commit message: " -i "$(cat .commit-message || echo '')" -r message && echo "$message" > .commit-message && git commit -m "$message" && rm -f .commit-message
|
||||
git push
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
# Add your reusable NixOS modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
|
||||
# These should be stuff you would like to share with others, not your personal configurations.
|
||||
{
|
||||
vpn-ip = import ./vpn-ip;
|
||||
# List your module files here
|
||||
contabo.wan = import ./contabo/wan;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,218 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.preservationSetup;
|
||||
in {
|
||||
options = {
|
||||
preservationSetup.enable = lib.mkEnableOption "Enable setup of preservation of files in /persistent";
|
||||
global.desktop = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Whether or not we should make desktop preservation files.";
|
||||
};
|
||||
global.server = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Whether or not we should make server preservation files.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
preservation = {
|
||||
# the module doesn't do anything unless it is enabled
|
||||
enable = true;
|
||||
|
||||
preserveAt."/persistent" = {
|
||||
# preserve system directories
|
||||
directories =
|
||||
[
|
||||
#Shared
|
||||
"/var/lib/sbctl"
|
||||
"/var/lib/bluetooth"
|
||||
"/var/lib/fprint"
|
||||
"/var/lib/fwupd"
|
||||
"/var/lib/libvirt"
|
||||
"/var/lib/tpm2-tss"
|
||||
"/var/lib/tpm2-udev-trigger"
|
||||
"/var/lib/power-profiles-daemon"
|
||||
"/var/lib/systemd/coredump"
|
||||
"/var/lib/systemd/rfkill"
|
||||
"/var/lib/systemd/timers"
|
||||
"/var/log"
|
||||
{
|
||||
directory = "/var/lib/nixos";
|
||||
inInitrd = true;
|
||||
}
|
||||
{
|
||||
directory = "/var/secrets";
|
||||
inInitrd = true;
|
||||
}
|
||||
]
|
||||
++ lib.mkIf (cfg.desktop == true) [
|
||||
#Desktop
|
||||
"/var/lib/decky-loader"
|
||||
"/var/lib/flatpak"
|
||||
]
|
||||
++ lib.mkIf (cfg.server == true) [
|
||||
#Server
|
||||
"/var/lib/continuwuity"
|
||||
"/var/lib/dhcpcd"
|
||||
"/var/lib/docker"
|
||||
"/var/lib/dovecot"
|
||||
"/var/lib/forgejo"
|
||||
"/var/lib/gotosocial"
|
||||
"/var/lib/grafana"
|
||||
"/var/lib/jellyfin"
|
||||
"/var/lib/media"
|
||||
"/var/lib/mollysocket"
|
||||
"/var/lib/private"
|
||||
"/var/lib/mysql"
|
||||
"/var/lib/nextcloud"
|
||||
"/var/lib/onlyoffice"
|
||||
"/var/lib/postfix"
|
||||
"/var/lib/postgresql"
|
||||
"/var/lib/prometheus2"
|
||||
"/var/lib/rabbitmq"
|
||||
"/var/lib/redis-nextcloud"
|
||||
"/var/lib/redis-rspamd"
|
||||
"/var/lib/secrets"
|
||||
"/var/lib/writefreely"
|
||||
"/var/db"
|
||||
"/var/dkim"
|
||||
"/var/secrets"
|
||||
"/var/sieve"
|
||||
"/var/vmail"
|
||||
"/var/mysql"
|
||||
];
|
||||
|
||||
# preserve system files
|
||||
files = [
|
||||
{
|
||||
file = "/etc/machine-id";
|
||||
inInitrd = true;
|
||||
how = "symlink";
|
||||
}
|
||||
"/var/lib/usbguard/rules.conf"
|
||||
|
||||
# creates a symlink on the volatile root
|
||||
# creates an empty directory on the persistent volume, i.e. /persistent/var/lib/systemd
|
||||
# does not create an empty file at the symlink's target (would require `createLinkTarget = true`)
|
||||
{
|
||||
file = "/var/lib/systemd/random-seed";
|
||||
how = "symlink";
|
||||
inInitrd = true;
|
||||
configureParent = true;
|
||||
}
|
||||
"/var/lib/systemd/tpm2-srk-public-key.pem"
|
||||
"/var/lib/systemd/tpm2-srk-public-key.tpm2b_public"
|
||||
];
|
||||
|
||||
# preserve user-specific files, implies ownership
|
||||
users = {
|
||||
lillian = {
|
||||
commonMountOptions = [
|
||||
"x-gvfs-hide"
|
||||
];
|
||||
directories =
|
||||
[
|
||||
{
|
||||
directory = ".ssh";
|
||||
mode = "0700";
|
||||
}
|
||||
]
|
||||
++ lib.mkIf (cfg.desktop == true) [
|
||||
#Desktop
|
||||
".local/state/wireplumber"
|
||||
".local/share/direnv"
|
||||
".local/state/nix"
|
||||
".local/state/comma"
|
||||
".local/state/home-manager"
|
||||
".local/share/PrismLauncher"
|
||||
".local/share/qBittorrent"
|
||||
".local/share/kwalletd"
|
||||
".local/share/kwin" #TODO: add the window script via nix instead of saving it imperatively and keeping it
|
||||
".local/share/lutris"
|
||||
".local/share/Nextcloud"
|
||||
".local/share/Steam"
|
||||
".local/share/zoxide"
|
||||
".local/share/flatpak"
|
||||
".local/share/applications"
|
||||
".local/share/firefoxpwa/"
|
||||
".local/share/zoxide"
|
||||
".mozilla"
|
||||
".steam"
|
||||
".zsh"
|
||||
".pki"
|
||||
".tldrc"
|
||||
".thunderbird"
|
||||
"Code"
|
||||
"Writing"
|
||||
"Games"
|
||||
".config/kdeconnect"
|
||||
".config/Nextcloud"
|
||||
".config/noisetorch"
|
||||
".config/qBittorrent"
|
||||
".config/r2modman"
|
||||
".config/r2modmanPlus-local"
|
||||
".config/Ryujinx"
|
||||
".config/Signal"
|
||||
".config/sops"
|
||||
".config/vesktop"
|
||||
".config/kde.org"
|
||||
".config/heroic"
|
||||
];
|
||||
#Shared
|
||||
files = [
|
||||
".z"
|
||||
".zsh_history"
|
||||
];
|
||||
};
|
||||
root = {
|
||||
# specify user home when it is not `/home/${user}`
|
||||
home = "/root";
|
||||
directories = [
|
||||
{
|
||||
directory = ".ssh";
|
||||
mode = "0700";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd.services.systemd-machine-id-commit = {
|
||||
unitConfig.ConditionPathIsMountPoint = [
|
||||
""
|
||||
"/persistent/etc/machine-id"
|
||||
];
|
||||
serviceConfig.ExecStart = [
|
||||
""
|
||||
"systemd-machine-id-setup --commit --root /persistent"
|
||||
];
|
||||
};
|
||||
systemd.tmpfiles.settings.preservation = {
|
||||
"/home/lillian/.config".d = {
|
||||
user = "lillian";
|
||||
group = "users";
|
||||
mode = "0755";
|
||||
};
|
||||
"/home/lillian/.local".d = {
|
||||
user = "lillian";
|
||||
group = "users";
|
||||
mode = "0755";
|
||||
};
|
||||
"/home/lillian/.local/share".d = {
|
||||
user = "lillian";
|
||||
group = "users";
|
||||
mode = "0755";
|
||||
};
|
||||
"/home/lillian/.local/state".d = {
|
||||
user = "lillian";
|
||||
group = "users";
|
||||
mode = "0755";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,159 +0,0 @@
|
|||
{
|
||||
outputs,
|
||||
pkgs,
|
||||
pkgs-edge,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let cfg = config.sharedPackages; in {
|
||||
options = {
|
||||
sharedPackages.enable = lib.mkEnableOption "Whether or not to install shared packages and settings";
|
||||
global.desktopPackages = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Whether or not to install shared desktop packages and settings.";
|
||||
};
|
||||
global.serverPackages = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Whether or not to install shared server packages and settings.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
imports = [] ++ lib.mkIf (cfg.desktopPackages == true) [
|
||||
./desktop-settings
|
||||
] ++ lib.mkIf (cfg.serverPackages == true) [
|
||||
./server-settings
|
||||
];
|
||||
nixpkgs = {
|
||||
# You can add overlays here
|
||||
overlays = [
|
||||
# Add overlays your own flake exports (from overlays and pkgs dir):
|
||||
outputs.overlays.additions
|
||||
outputs.overlays.modifications
|
||||
];
|
||||
};
|
||||
|
||||
environment.systemPackages =
|
||||
(with pkgs; [
|
||||
# Custom tools
|
||||
rebuild
|
||||
rebuild-no-inhibit
|
||||
install-nix
|
||||
install-nix-no-inhibit
|
||||
update
|
||||
upgrade
|
||||
simple-completion-language-server
|
||||
|
||||
# System tools
|
||||
age
|
||||
alejandra
|
||||
e2fsprogs
|
||||
# uutils-findutils
|
||||
git
|
||||
git-filter-repo
|
||||
pre-commit
|
||||
helix
|
||||
home-manager
|
||||
htop
|
||||
just
|
||||
killall
|
||||
oh-my-zsh
|
||||
rsync
|
||||
tre-command
|
||||
wget
|
||||
zsh
|
||||
tldr
|
||||
nmap
|
||||
knot-dns
|
||||
libressl
|
||||
nettools
|
||||
starship
|
||||
|
||||
# System libraries
|
||||
] ++ lib.mkIf (cfg.desktop == true) [
|
||||
# Custom tools
|
||||
dvd
|
||||
dvt
|
||||
servo
|
||||
restart
|
||||
|
||||
# System tools
|
||||
aha
|
||||
ttf-ms-win10
|
||||
wineWow64Packages.stable
|
||||
bottles
|
||||
tpm2-abrmd
|
||||
jdk21_headless
|
||||
#bcachefs-tools
|
||||
clinfo
|
||||
direnv
|
||||
exfat
|
||||
exfatprogs
|
||||
gamemode
|
||||
git-filter-repo
|
||||
gnupg
|
||||
pciutils
|
||||
podman
|
||||
podman-compose
|
||||
python3Minimal
|
||||
sbctl
|
||||
tpm2-tools
|
||||
tpm2-tss
|
||||
virtualgl
|
||||
vulkan-tools
|
||||
# waydroid
|
||||
waypipe
|
||||
wayland-utils
|
||||
yubikey-personalization
|
||||
zsh
|
||||
|
||||
# KDE/QT
|
||||
kdePackages.plasma-desktop
|
||||
kdePackages.plasma-wayland-protocols
|
||||
kdePackages.libplasma
|
||||
kdePackages.plasma-integration
|
||||
kdePackages.plasma-activities
|
||||
kdePackages.plasma-workspace
|
||||
kdePackages.discover
|
||||
kdePackages.filelight
|
||||
kdePackages.kcalc
|
||||
kdePackages.kdepim-addons
|
||||
kdePackages.kirigami
|
||||
kdePackages.kdeconnect-kde
|
||||
kdePackages.konsole
|
||||
# kdePackages.krunner-ssh
|
||||
# kdePackages.krunner-symbols
|
||||
kdePackages.packagekit-qt
|
||||
kdePackages.plasma-pa
|
||||
kdePackages.sddm-kcm
|
||||
kdePackages.dolphin-plugins
|
||||
kdePackages.qtstyleplugin-kvantum
|
||||
kdePackages.krdc
|
||||
kdePackages.krfb
|
||||
kdePackages.kate
|
||||
kdePackages.qrca
|
||||
libportal-qt5
|
||||
libportal
|
||||
|
||||
# User tools
|
||||
freetube
|
||||
noisetorch
|
||||
qjackctl
|
||||
wireplumber
|
||||
intiface-central
|
||||
#rustdesk
|
||||
]
|
||||
|
||||
)
|
||||
++ (with pkgs-edge; [
|
||||
# list of latest packages from nixpkgs master
|
||||
# Can be used to install latest version of some packages
|
||||
] ++ lib.mkIf (cfg.desktop == true) [
|
||||
kdePackages.plasma-vault
|
||||
]
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
@ -1,144 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./firefox
|
||||
];
|
||||
services.udev.extraRules = ''
|
||||
KERNEL=="hidraw*", ATTRS{idVendor}=="057e", MODE="0660", TAG+="uaccess"
|
||||
KERNEL=="hidraw*", KERNELS=="*057e:*", MODE="0660", TAG+="uaccess"
|
||||
KERNEL=="hidraw*", ATTRS{idVendor}=="2dc8", MODE="0660", TAG+="uaccess"
|
||||
KERNEL=="hidraw*", KERNELS=="*2DC8:*", MODE="0660", TAG+="uaccess"
|
||||
KERNEL=="hidraw*", ATTRS{idProduct}=="6012", ATTRS{idVendor}=="2dc8", MODE="0660", TAG+="uaccess"
|
||||
KERNEL=="hidraw*", KERNELS=="*2DC8:6012*", MODE="0660", TAG+="uaccess"
|
||||
'';
|
||||
|
||||
fonts.packages = [pkgs.ttf-ms-win10];
|
||||
|
||||
programs = {
|
||||
# Allow executing of anything on the system with a , eg: , python executes python from the nix store even if not in $PATH currently
|
||||
command-not-found.enable = lib.mkForce false;
|
||||
# nix-index.enable = true;
|
||||
nix-index-database.comma.enable = true;
|
||||
|
||||
direnv = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# steam = {
|
||||
# enable = true;
|
||||
# remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
# dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
# extest.enable = true;
|
||||
# };
|
||||
kdeconnect.enable = true;
|
||||
|
||||
noisetorch = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal.enable = true;
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true; # Enables support for 32bit libs that steam uses
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Amsterdam";
|
||||
services = {
|
||||
# Enable the X11 windowing system.
|
||||
xserver.enable = true;
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
# displayManager.sddm = {
|
||||
# enable = true;
|
||||
# wayland.enable = true;
|
||||
# };
|
||||
displayManager.defaultSession = lib.mkDefault "plasma";
|
||||
desktopManager.plasma6.enable = true;
|
||||
desktopManager.plasma6.notoPackage = pkgs.atkinson-hyperlegible;
|
||||
|
||||
# Enable flatpak support
|
||||
flatpak.enable = true;
|
||||
packagekit.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
options = "terminate:ctrl_alt_bksp,compose:caps_toggle";
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
printing.enable = true;
|
||||
|
||||
# Enable fwupd daemon and user space client
|
||||
fwupd.enable = true;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
wireplumber.enable = true;
|
||||
};
|
||||
|
||||
avahi = {
|
||||
nssmdns4 = true;
|
||||
enable = true;
|
||||
ipv4 = true;
|
||||
ipv6 = true;
|
||||
publish = {
|
||||
enable = true;
|
||||
addresses = true;
|
||||
workstation = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
hardware = {
|
||||
graphics.enable32Bit = true;
|
||||
|
||||
# Enable bluetooth hardware
|
||||
bluetooth.enable = true;
|
||||
};
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services.pulseaudio.enable = false;
|
||||
virtualisation.podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
};
|
||||
security.tpm2 = {
|
||||
enable = true;
|
||||
pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so
|
||||
tctiEnvironment.enable = true;
|
||||
}; # TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables
|
||||
users.users.lillian.extraGroups = ["tss"];
|
||||
boot = {
|
||||
# tss group has access to TPM devices
|
||||
bootspec.enable = true;
|
||||
binfmt.emulatedSystems = ["aarch64-linux"];
|
||||
#boot.kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
|
||||
#boot.supportedFilesystems = ["bcachefs"];
|
||||
extraModulePackages = with config.boot.kernelPackages; [v4l2loopback.out];
|
||||
kernelModules = [
|
||||
# Virtual Camera
|
||||
"v4l2loopback"
|
||||
# Virtual Microphone, built-in
|
||||
"snd-aloop"
|
||||
];
|
||||
|
||||
# Set initial kernel module settings
|
||||
extraModprobeConfig = ''
|
||||
# exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming
|
||||
# card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams
|
||||
# https://github.com/umlaeute/v4l2loopback
|
||||
options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
|
||||
'';
|
||||
loader.systemd-boot.configurationLimit = 3;
|
||||
loader.efi.canTouchEfiVariables = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,182 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
package = pkgs.librewolf;
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableAccounts = true;
|
||||
DisableProfileImport = true;
|
||||
OverrideFirstRunPage = "";
|
||||
OverridePostUpdatePage = "";
|
||||
DontCheckDefaultBrowser = true;
|
||||
DisplayBookmarksToolbar = "newtab";
|
||||
ManualAppUpdateOnly = true;
|
||||
OfferToSaveLogins = false;
|
||||
PasswordManagerEnabled = false;
|
||||
DownloadDirectory = "\${home}/Downloads";
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
ExtensionSettings = {
|
||||
# "*".installation_mode = "blocked"; # blocks all addons except the ones specified below
|
||||
# Catppuccin Macchiato - Mauve theme:
|
||||
"{55750c61-e5f3-4d9a-898d-0643b3093678}" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/catppuccin-macchiato-mauve/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Sideberry:
|
||||
#"{3c078156-979c-498b-8990-85f7987dd929}" = {
|
||||
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/sidebery/latest.xpi";
|
||||
# installation_mode = "force_installed";
|
||||
#};
|
||||
# Privacy Badger:
|
||||
"jid1-MnnxcxisBPnSXQ@jetpack" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Bitwarden:
|
||||
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Libredirect:
|
||||
"7esoorv3@alefvanoon.anonaddy.me" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/libredirect/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# DarkReader:
|
||||
"addon@darkreader.org" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# SimpleLogin:
|
||||
"addon@simplelogin" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/simplelogin/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Cookie Auto Delete:
|
||||
"CookieAutoDelete@kennydo.com" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/cookie-autodelete/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Don't fuck with paste:
|
||||
"DontFuckWithPaste@raim.ist" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/don-t-fuck-with-paste/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Firefox pwas:
|
||||
"firefoxpwa@filips.si" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/pwas-for-firefox/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Consent o matic:
|
||||
"gdpr@cavi.au.dk" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/consent-o-matic/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Mailvelope:
|
||||
"jid1-AQqSMBYb0a8ADg@jetpack" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/mailvelope/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# KDE connect:
|
||||
"kde-connect@0xc0dedbad.com" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/kde-connect/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Plasma browser integration:
|
||||
"plasma-browser-integration@kde.org" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/plasma-integration/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Shinigami eyes:
|
||||
"shinigamieyes@shinigamieyes" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/shinigami-eyes/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# uBlock Origin:
|
||||
"uBlock0@raymondhill.net" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# uBlock Scope:
|
||||
"uBO-Scope@raymondhill.net" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ubo-scope/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Wayback machine:
|
||||
"wayback_machine@mozilla.org" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/file/4047136/wayback_machine_new-3.2.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Tree Style Tabs
|
||||
# "treestyletab@piro.sakura.ne.jp" = {
|
||||
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/tree-style-tab/latest.xpi";
|
||||
# installation_mode = "force_installed";
|
||||
# };
|
||||
# Adaptive Tab Bar Colour
|
||||
"ATBC@EasonWong" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/Adaptive-Tab-Bar-Colour/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
};
|
||||
FirefoxHome = {
|
||||
Search = true;
|
||||
TopSites = false;
|
||||
SponsoredTopSites = false;
|
||||
Highlights = false;
|
||||
Pocket = false;
|
||||
SponsoredPocket = false;
|
||||
Snippets = false;
|
||||
};
|
||||
FirefoxSuggest = {
|
||||
WebSuggestions = false;
|
||||
SponsoredSuggestions = false;
|
||||
ImproveSuggest = false;
|
||||
};
|
||||
Preferences = {
|
||||
"browser.compactmode.show" = true;
|
||||
"browser.uidensity" = 0;
|
||||
# "browser.newtabpage.activity-stream.feeds.topsites" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.system.showSponsored" = false;
|
||||
"font.name.serif.x-western" = "Crimson";
|
||||
"font.name.sans-serif.x-western" = "Atkinson Hyperlegible";
|
||||
"font.name.monospace.x-western" = "FiraCode Nerd Font";
|
||||
"font.size.variable.x-western" = 14;
|
||||
"floorp.browser.sidebar.useIconProvider" = "duckduckgo";
|
||||
"floorp.browser.tabbar.settings" = 2;
|
||||
"floorp.browser.tabs.verticaltab" = true;
|
||||
"floorp.tabbar.style" = 2;
|
||||
"floorp.browser.user.interface" = 8;
|
||||
"signon.rememberSignons" = true;
|
||||
"browser.ml.chat.enabled" = false;
|
||||
"browser.ml.chat.shortcuts" = false;
|
||||
};
|
||||
# TODO: switch to ManagedBookmarks as this will be dropped at some point https://mozilla.github.io/policy-templates/#managedbookmarks
|
||||
# Bookmarks = [
|
||||
# {
|
||||
# Title = "NixOS wiki";
|
||||
# Placement = "toolbar";
|
||||
# URL = "https://nixos.wiki/";
|
||||
# }
|
||||
# {
|
||||
# Title = "NixOS options";
|
||||
# Placement = "toolbar";
|
||||
# URL = "https://nixos.org/manual/nixos/stable/options";
|
||||
# }
|
||||
# {
|
||||
# Title = "NixOS home-manager options";
|
||||
# Placement = "toolbar";
|
||||
# URL = "https://nix-community.github.io/home-manager/options.xhtml";
|
||||
# }
|
||||
# ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
sops.secrets."releaseCookie".mode = "0440";
|
||||
sops.secrets."releaseCookie".owner = config.users.users.akkoma.name;
|
||||
|
||||
users.groups.akkoma = {};
|
||||
|
||||
users.users = {
|
||||
akkoma = {
|
||||
isSystemUser = true;
|
||||
group = "akkoma";
|
||||
};
|
||||
};
|
||||
|
||||
services.akkoma = {
|
||||
enable = true;
|
||||
package = pkgs.akkoma;
|
||||
extraPackages = with pkgs; [ffmpeg exiftool imagemagick];
|
||||
nginx = {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
serverName = "akkoma.gladtherescake.eu";
|
||||
};
|
||||
#dist.cookie._secret = config.sops.secrets."releaseCookie".path;
|
||||
config = {
|
||||
":pleroma".":instance" = {
|
||||
name = "GLaDTheresCake Akkoma";
|
||||
email = "akkoma@gladtherescake.eu";
|
||||
notify_email = "no-reply@akkoma.gladtherescake.eu";
|
||||
emails.mailer = {
|
||||
enabled = true;
|
||||
adapter = "Swoosh.Adapters.Sendmail";
|
||||
cmd_path = "sendmail";
|
||||
cmd_args = "-N delay,failure,success";
|
||||
qmail = true;
|
||||
};
|
||||
description = "Lillian's Akkoma server!";
|
||||
languages = ["en" "nl"];
|
||||
registrations_open = true;
|
||||
max_pinned_statuses = 10;
|
||||
cleanup_attachments = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,101 +0,0 @@
|
|||
{config, ...}: {
|
||||
users.users.aria2.group = "aria2";
|
||||
users.groups.aria2 = {};
|
||||
users.users.aria2.isSystemUser = true;
|
||||
|
||||
sops.secrets."wg-private".mode = "0440";
|
||||
sops.secrets."wg-private".owner = config.users.users.aria2.name;
|
||||
containers.aria2 = {
|
||||
forwardPorts = [
|
||||
{
|
||||
containerPort = 6969;
|
||||
hostPort = 6969;
|
||||
protocol = "udp";
|
||||
}
|
||||
];
|
||||
bindMounts = {
|
||||
"/var/lib/media" = {
|
||||
hostPath = "/var/lib/media";
|
||||
isReadOnly = false;
|
||||
};
|
||||
"/var/lib/wg/private-key" = {
|
||||
hostPath = config.sops.secrets."wg-private".path;
|
||||
isReadOnly = true;
|
||||
};
|
||||
};
|
||||
autoStart = true;
|
||||
privateNetwork = true;
|
||||
hostAddress = "192.168.100.10";
|
||||
localAddress = "192.168.100.11";
|
||||
hostAddress6 = "fc00::1";
|
||||
localAddress6 = "fc00::2";
|
||||
config = {
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
system.stateVersion = "unstable";
|
||||
networking.firewall.allowedTCPPorts = [6969];
|
||||
networking.firewall.allowedUDPPorts = [6969 51820];
|
||||
users.users = {
|
||||
aria2.extraGroups = ["jellyfin" "nextcloud"];
|
||||
};
|
||||
services.aria2 = {
|
||||
enable = true;
|
||||
downloadDir = "/var/lib/media";
|
||||
rpcListenPort = 6969;
|
||||
};
|
||||
networking.wg-quick.interfaces = {
|
||||
wg0 = {
|
||||
postUp = ''
|
||||
# Mark packets on the wg0 interface
|
||||
wg set wg0 fwmark 51820
|
||||
|
||||
# Forbid anything else which doesn't go through wireguard VPN on
|
||||
# ipV4 and ipV6
|
||||
${pkgs.iptables}/bin/iptables -A OUTPUT \
|
||||
! -d 192.168.0.0/16 \
|
||||
! -o wg0 \
|
||||
-m mark ! --mark $(wg show wg0 fwmark) \
|
||||
-m addrtype ! --dst-type LOCAL \
|
||||
-j REJECT
|
||||
${pkgs.iptables}/bin/ip6tables -A OUTPUT \
|
||||
! -o wg0 \
|
||||
-m mark ! --mark $(wg show wg0 fwmark) \
|
||||
-m addrtype ! --dst-type LOCAL \
|
||||
-j REJECT
|
||||
${pkgs.iptables}/bin/iptables -I OUTPUT -o lo -p tcp \
|
||||
--dport 6969 -m state --state NEW,ESTABLISHED -j ACCEPT
|
||||
${pkgs.iptables}/bin/iptables -I OUTPUT -s 192.168.100.10/24 -d 192.168.100.11/24 \
|
||||
-j ACCEPT
|
||||
'';
|
||||
postDown = ''
|
||||
${pkgs.iptables}/bin/iptables -D OUTPUT \
|
||||
! -o wg0 \
|
||||
-m mark ! --mark $(wg show wg0 fwmark) \
|
||||
-m addrtype ! --dst-type LOCAL \
|
||||
-j REJECT
|
||||
${pkgs.iptables}/bin/ip6tables -D OUTPUT \
|
||||
! -o wg0 -m mark \
|
||||
! --mark $(wg show wg0 fwmark) \
|
||||
-m addrtype ! --dst-type LOCAL \
|
||||
-j REJECT
|
||||
'';
|
||||
|
||||
address = ["10.2.0.2/32"];
|
||||
dns = ["10.2.0.1"];
|
||||
privateKeyFile = "/var/lib/wg/private-key";
|
||||
|
||||
peers = [
|
||||
{
|
||||
publicKey = "7A19/lMrfmpFZARivC7FS8DcGxMn5uUq9LcOqFjzlDo=";
|
||||
allowedIPs = ["0.0.0.0/0"];
|
||||
endpoint = "185.159.158.182:51820";
|
||||
persistentKeepalive = 25;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{config, ...}: {
|
||||
users.users.aria2.group = "aria2";
|
||||
users.groups.aria2 = {};
|
||||
users.users.aria2.isSystemUser = true;
|
||||
|
||||
sops.secrets."rpcSecret".mode = "0440";
|
||||
sops.secrets."rpcSecret".owner = config.users.users.aria2.name;
|
||||
|
||||
services.aria2 = {
|
||||
enable = true;
|
||||
downloadDir = "/var/lib/media";
|
||||
rpcListenPort = 6969;
|
||||
rpcSecretFile = config.sops.secrets."rpcSecret".path;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
{config, ...}: {
|
||||
services.phpfpm.pools.nextcloud.settings = {
|
||||
"listen.owner" = config.services.caddy.user;
|
||||
"listen.group" = config.services.caddy.group;
|
||||
};
|
||||
|
||||
users.users.caddy.extraGroups = ["nextcloud"];
|
||||
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
|
||||
# Setup Nextcloud virtual host to listen on ports
|
||||
virtualHosts = {
|
||||
"${config.services.nextcloud.hostName}" = {
|
||||
useACMEHost = "${config.services.nextcloud.hostName}";
|
||||
extraConfig = ''
|
||||
redir /.well-known/carddav /remote.php/dav 301
|
||||
redir /.well-known/caldav /remote.php/dav 301
|
||||
redir /.well-known/webfinger /index.php/.well-known/webfinger 301
|
||||
redir /.well-known/nodeinfo /index.php/.well-known/nodeinfo 301
|
||||
|
||||
encode gzip
|
||||
reverse_proxy localhost:9000
|
||||
header Strict-Transport-Security max-age=31536000;
|
||||
@forbidden {
|
||||
path /.htaccess
|
||||
path /data/*
|
||||
path /config/*
|
||||
path /db_structure
|
||||
path /.xml
|
||||
path /README
|
||||
path /3rdparty/*
|
||||
path /lib/*
|
||||
path /templates/*
|
||||
path /occ
|
||||
path /console.php
|
||||
}
|
||||
handle @forbidden {
|
||||
respond 404
|
||||
}
|
||||
|
||||
handle {
|
||||
root * /var/www/html
|
||||
php_fastcgi 127.0.0.1:9000 {
|
||||
# Tells nextcloud to remove /index.php from URLs in links
|
||||
env front_controller_active true
|
||||
}
|
||||
file_server
|
||||
}
|
||||
'';
|
||||
};
|
||||
"onlyoffice.gladtherescake.eu" = {
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
virtualHosts = {
|
||||
"cinny.gladtherescake.eu" = {
|
||||
root = "${pkgs.cinny}";
|
||||
## Force HTTP redirect to HTTPS
|
||||
forceSSL = true;
|
||||
## LetsEncrypt
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
index = "index.html";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,153 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
# You'll need to edit these values
|
||||
# The hostname that will appear in your user and room IDs
|
||||
server_name = "matrix.gladtherescake.eu";
|
||||
|
||||
# An admin email for TLS certificate notifications
|
||||
admin_email = "letsencrypt@gladtherescake.eu";
|
||||
|
||||
# These ones you can leave alone
|
||||
|
||||
# Build a dervation that stores the content of `${server_name}/.well-known/matrix/server`
|
||||
well_known_server = pkgs.writeText "well-known-matrix-server" ''
|
||||
{
|
||||
"m.server": "${server_name}"
|
||||
}
|
||||
'';
|
||||
|
||||
# Build a dervation that stores the content of `${server_name}/.well-known/matrix/client`
|
||||
well_known_client = pkgs.writeText "well-known-matrix-client" ''
|
||||
{
|
||||
"m.homeserver": {
|
||||
"base_url": "https://${server_name}"
|
||||
}
|
||||
}
|
||||
'';
|
||||
in {
|
||||
# Configure continuwuity itself
|
||||
services.matrix-continuwuity = {
|
||||
enable = true;
|
||||
|
||||
settings.global = {
|
||||
inherit server_name;
|
||||
allow_registration = false;
|
||||
# emergency_password = "testpassword";
|
||||
turn_uris = ["turn:turn.gladtherescake.eu.url?transport=udp" "turn:turn.gladtherescake.eu?transport=tcp"];
|
||||
turn_secret = "cPKWEn4Fo5TAJoE7iX3xeVOaMVE4afeRN1iRGWYfbkWbkaZMxTpnmazHyH6c6yXT";
|
||||
well_known = {
|
||||
server = "matrix.gladtherescake.eu:443";
|
||||
client = "https://matrix.gladtherescake.eu";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Configure automated TLS acquisition/renewal
|
||||
security.acme = {
|
||||
acceptTerms = true;
|
||||
defaults = {
|
||||
email = admin_email;
|
||||
};
|
||||
};
|
||||
|
||||
# ACME data must be readable by the NGINX user
|
||||
users.users.nginx.extraGroups = [
|
||||
"acme"
|
||||
];
|
||||
|
||||
# Configure NGINX as a reverse proxy
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
|
||||
virtualHosts = {
|
||||
"${server_name}" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
|
||||
listen = [
|
||||
{
|
||||
addr = "0.0.0.0";
|
||||
port = 443;
|
||||
ssl = true;
|
||||
}
|
||||
{
|
||||
addr = "[::]";
|
||||
port = 443;
|
||||
ssl = true;
|
||||
}
|
||||
{
|
||||
addr = "0.0.0.0";
|
||||
port = 8448;
|
||||
ssl = true;
|
||||
}
|
||||
{
|
||||
addr = "[::]";
|
||||
port = 8448;
|
||||
ssl = true;
|
||||
}
|
||||
];
|
||||
|
||||
locations."/_matrix/" = {
|
||||
proxyPass = "http://backend_continuwuity";
|
||||
proxyWebsockets = true;
|
||||
extraConfig = ''
|
||||
proxy_set_header Host $host;
|
||||
proxy_buffering off;
|
||||
'';
|
||||
};
|
||||
locations."=/.well-known/matrix/server" = {
|
||||
# Use the contents of the derivation built previously
|
||||
alias = "${well_known_server}";
|
||||
|
||||
extraConfig = ''
|
||||
# Set the header since by default NGINX thinks it's just bytes
|
||||
default_type application/json;
|
||||
'';
|
||||
};
|
||||
|
||||
locations."=/.well-known/matrix/client" = {
|
||||
# Use the contents of the derivation built previously
|
||||
alias = "${well_known_client}";
|
||||
return = "200 '{\"m.homeserver\": {\"base_url\": \"https://${server_name}\"}, \"org.matrix.msc3575.proxy\": {\"url\": \"https://${server_name}\"}}'";
|
||||
|
||||
extraConfig = ''
|
||||
# Set the header since by default NGINX thinks it's just bytes
|
||||
default_type application/json;
|
||||
|
||||
# https://matrix.org/docs/spec/client_server/r0.4.0#web-browser-clients
|
||||
add_header Access-Control-Allow-Origin "*";
|
||||
'';
|
||||
};
|
||||
locations."/_matrix/client/unstable/org.matrix.msc3575/sync" = {
|
||||
proxyPass = "http://matrix.gladtherescake.eu/client/unstable/org.matrix.msc3575/sync";
|
||||
proxyWebsockets = true;
|
||||
recommendedProxySettings = false;
|
||||
return = "200 '{\"contacts\": [{\"matrix_id\": \"@admin:server.name\", \"email_address\": \"admin@server.name\", \"role\": \"m.role.admin\"}]}'";
|
||||
extraConfig = ''
|
||||
proxy_set_header Host $host;
|
||||
proxy_buffering off;
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
merge_slashes off;
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
upstreams = {
|
||||
"backend_continuwuity" = {
|
||||
servers = {
|
||||
"[::1]:${toString config.services.matrix-continuwuity.settings.global.port}" = {};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Open firewall ports for HTTP, HTTPS, and Matrix federation
|
||||
networking.firewall.allowedTCPPorts = [80 443 8448];
|
||||
networking.firewall.allowedUDPPorts = [80 443 8448];
|
||||
}
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
{config, ...}: {
|
||||
sops.secrets."coturn-auth-secret".mode = "0440";
|
||||
sops.secrets."coturn-auth-secret".owner = config.users.users.turnserver.name;
|
||||
users.users.nginx.extraGroups = ["turnserver"];
|
||||
services.coturn = {
|
||||
enable = true;
|
||||
use-auth-secret = true;
|
||||
static-auth-secret-file = config.sops.secrets."coturn-auth-secret".path;
|
||||
realm = "turn.gladtherescake.eu";
|
||||
relay-ips = [
|
||||
"62.171.160.195"
|
||||
"2a02:c207:2063:2448::1"
|
||||
];
|
||||
extraConfig = "
|
||||
cipher-list=\"HIGH\"
|
||||
no-loopback-peers
|
||||
no-multicast-peers
|
||||
";
|
||||
secure-stun = true;
|
||||
cert = "/var/lib/acme/turn.gladtherescake.eu/fullchain.pem";
|
||||
pkey = "/var/lib/acme/turn.gladtherescake.eu/key.pem";
|
||||
min-port = 49152;
|
||||
max-port = 49999;
|
||||
};
|
||||
|
||||
# setup certs
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
virtualHosts = {
|
||||
"turn.gladtherescake.eu" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# share certs with coturn and restart on renewal
|
||||
security.acme.certs = {
|
||||
"turn.gladtherescake.eu" = {
|
||||
group = "turnserver";
|
||||
postRun = "systemctl reload nginx.service; systemctl restart coturn.service";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
{...}: {
|
||||
imports = [
|
||||
./grafana
|
||||
#./loki
|
||||
./prometheus
|
||||
./telegraf
|
||||
];
|
||||
}
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
{config, ...}: {
|
||||
# grafana configuration
|
||||
services.grafana = {
|
||||
enable = true;
|
||||
settings.server = {
|
||||
domain = "grafana.lillianviolet.dev";
|
||||
http_port = 2342;
|
||||
http_addr = "127.0.0.1";
|
||||
};
|
||||
provision = {
|
||||
datasources.settings = {
|
||||
apiVersion = 1;
|
||||
datasources = [
|
||||
{
|
||||
name = "Prometheus";
|
||||
type = "prometheus";
|
||||
access = "proxy";
|
||||
url = "http://localhost:${toString config.services.prometheus.port}";
|
||||
isDefault = true;
|
||||
}
|
||||
{
|
||||
name = "Loki";
|
||||
type = "loki";
|
||||
access = "proxy";
|
||||
url = "http://localhost:3100";
|
||||
isDefault = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# nginx reverse proxy
|
||||
services.nginx.virtualHosts.${config.services.grafana.settings.server.domain} = {
|
||||
## Force HTTP redirect to HTTPS
|
||||
forceSSL = true;
|
||||
## LetsEncrypt
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${toString config.services.grafana.settings.server.http_addr}:${toString config.services.grafana.settings.server.http_port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{...}: {
|
||||
services.loki = {
|
||||
enable = true;
|
||||
configFile = ./loki.yaml;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
# Enables authentication through the X-Scope-OrgID header, which must be present
|
||||
# if true. If false, the OrgID will always be set to "fake".
|
||||
auth_enabled: false
|
||||
|
||||
server:
|
||||
http_listen_address: "0.0.0.0"
|
||||
http_listen_port: 3100
|
||||
|
||||
ingester:
|
||||
lifecycler:
|
||||
address: "127.0.0.1"
|
||||
ring:
|
||||
kvstore:
|
||||
store: inmemory
|
||||
replication_factor: 1
|
||||
final_sleep: 0s
|
||||
chunk_idle_period: 5m
|
||||
chunk_retain_period: 30s
|
||||
|
||||
schema_config:
|
||||
configs:
|
||||
- from: 2020-05-15
|
||||
store: boltdb
|
||||
object_store: filesystem
|
||||
schema: v11
|
||||
index:
|
||||
prefix: index_
|
||||
period: 168h
|
||||
|
||||
storage_config:
|
||||
boltdb:
|
||||
directory: /tmp/loki/index
|
||||
|
||||
filesystem:
|
||||
directory: /tmp/loki/chunks
|
||||
|
||||
limits_config:
|
||||
enforce_metric_name: false
|
||||
reject_old_samples: true
|
||||
reject_old_samples_max_age: 168h
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
{config, ...}: {
|
||||
services.prometheus = {
|
||||
enable = true;
|
||||
port = 9001;
|
||||
# Export the current system metrics
|
||||
exporters = {
|
||||
node = {
|
||||
enable = true;
|
||||
enabledCollectors = ["systemd"];
|
||||
port = 9002;
|
||||
};
|
||||
};
|
||||
scrapeConfigs = [
|
||||
# Scrape the current system
|
||||
{
|
||||
job_name = "GrafanaService system";
|
||||
static_configs = [
|
||||
{
|
||||
targets = ["127.0.0.1:${toString config.services.prometheus.exporters.node.port}"];
|
||||
}
|
||||
];
|
||||
}
|
||||
# Scrape the Loki service
|
||||
{
|
||||
job_name = "Loki service";
|
||||
static_configs = [
|
||||
{
|
||||
targets = ["127.0.0.1:3100"];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
{config, ...}: {
|
||||
sops.secrets."grafana-telegraf-key".mode = "0440";
|
||||
sops.secrets."grafana-telegraf-key".owner = config.users.users.telegraf.name;
|
||||
services.telegraf = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
agent = {
|
||||
interval = "10s";
|
||||
round_interval = true;
|
||||
metric_batch_size = 1000;
|
||||
metric_buffer_limit = 10000;
|
||||
collection_jitter = "0s";
|
||||
flush_interval = "10s";
|
||||
flush_jitter = "0s";
|
||||
precision = "";
|
||||
debug = false;
|
||||
quiet = false;
|
||||
logfile = "";
|
||||
hostname = "queen";
|
||||
omit_hostname = false;
|
||||
};
|
||||
inputs = {
|
||||
cpu = {
|
||||
percpu = true;
|
||||
totalcpu = true;
|
||||
collect_cpu_time = false;
|
||||
report_active = false;
|
||||
core_tags = false;
|
||||
};
|
||||
disk = {
|
||||
ignore_fs = ["tmpfs" "devtmpfs" "devfs" "overlay" "aufs" "squashfs"];
|
||||
};
|
||||
diskio = {};
|
||||
kernel = {};
|
||||
mem = {};
|
||||
system = {};
|
||||
};
|
||||
outputs = {
|
||||
websocket = {
|
||||
url = "ws://localhost:${toString config.services.prometheus.port}/api/live/push/telegraf";
|
||||
data_format = "influx";
|
||||
headers = {
|
||||
Authorisation = "Bearer glsa_lqpcKV34Pp0d7eIhKN79E2HTwzWWwN4m_fe64e398";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{...}: {
|
||||
imports = [
|
||||
./conduit
|
||||
./forgejo
|
||||
./gotosocial
|
||||
./mail-server
|
||||
./nextcloud
|
||||
# ./phanpy
|
||||
./postgres
|
||||
./roundcube
|
||||
./coturn
|
||||
# ./dashboard
|
||||
#./cinny
|
||||
#./firefox-sync
|
||||
./writefreely
|
||||
./mollysocket
|
||||
./jellyfin
|
||||
];
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
port = 5126;
|
||||
in {
|
||||
sops.secrets."sync-secrets".mode = "0440";
|
||||
sops.secrets."sync-secrets".owner = config.users.users.firefox-syncserver.name;
|
||||
|
||||
users.groups.firefox-syncserver = {};
|
||||
users.users.firefox-syncserver = {
|
||||
isSystemUser = true;
|
||||
group = "firefox-syncserver";
|
||||
extraGroups = [config.users.groups.keys.name];
|
||||
};
|
||||
|
||||
services.mysql.package = pkgs.mariadb;
|
||||
services.firefox-syncserver = {
|
||||
enable = true;
|
||||
secrets = config.sops.secrets."sync-secrets".path;
|
||||
singleNode = {
|
||||
enable = true;
|
||||
hostname = "sync.gladtherescake.eu";
|
||||
url = "http://localhost:${toString port}";
|
||||
enableNginx = true;
|
||||
enableTLS = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
imports = [];
|
||||
|
||||
#sops.secrets."mailpassunhash".mode = "0440";
|
||||
#sops.secrets."mailpassunhash".owner = config.users.users.virtualMail.name;
|
||||
|
||||
services.forgejo = {
|
||||
enable = true;
|
||||
#TODO: different mail passwords for different services
|
||||
#mailerPasswordFile = config.sops.secrets."mailpassunhash".path;
|
||||
database = {
|
||||
type = "postgres";
|
||||
};
|
||||
settings = {
|
||||
"cron.sync_external_users" = {
|
||||
RUN_AT_START = true;
|
||||
SCHEDULE = "@every 24h";
|
||||
UPDATE_EXISTING = true;
|
||||
};
|
||||
mailer = {
|
||||
ENABLED = true;
|
||||
PROTOCOL = "sendmail";
|
||||
FROM = "no-reply@git.lillianviolet.dev";
|
||||
SENDMAIL_PATH = "${pkgs.system-sendmail}/bin/sendmail";
|
||||
SENDMAIL_ARGS = "-bs";
|
||||
};
|
||||
repository = {
|
||||
ENABLE_PUSH_CREATE_USER = true;
|
||||
};
|
||||
federation = {
|
||||
ENABLED = true;
|
||||
};
|
||||
other = {
|
||||
SHOW_FOOTER_VERSION = false;
|
||||
};
|
||||
service.DISABLE_REGISTRATION = true;
|
||||
server = {
|
||||
DOMAIN = "git.lillianviolet.dev";
|
||||
ROOT_URL = "https://git.lillianviolet.dev/";
|
||||
HTTP_PORT = 3218;
|
||||
};
|
||||
"markup.jupyter" = {
|
||||
ENABLED = true;
|
||||
FILE_EXTENSIONS = ".ipynb";
|
||||
RENDER_COMMAND = "${pkgs.jupyter}/bin/jupyter nbconvert --stdout --to html --template full";
|
||||
IS_INPUT_FILE = true;
|
||||
RENDER_CONTENT_MODE = "no-sanitizer";
|
||||
};
|
||||
"markup.sanitizer.jupyter0" = {
|
||||
ELEMENT = "div";
|
||||
ALLOW_ATTR = "class";
|
||||
REGEXP = "";
|
||||
};
|
||||
"markup.sanitizer.jupyter0.img" = {
|
||||
ALLOW_DATA_URI_IMAGES = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.nginx = {
|
||||
virtualHosts = {
|
||||
"git.lillianviolet.dev" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:3218";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
users.users.gotosocial.extraGroups = ["virtualMail"];
|
||||
|
||||
services.nginx = {
|
||||
virtualHosts = {
|
||||
"social.gladtherescake.eu" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:4257";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.gotosocial = {
|
||||
enable = true;
|
||||
package = pkgs.gotosocial;
|
||||
setupPostgresqlDB = true;
|
||||
settings = {
|
||||
application-name = "gotosocial";
|
||||
host = "social.gladtherescake.eu";
|
||||
bind-address = "localhost";
|
||||
port = 4257;
|
||||
protocol = "https";
|
||||
storage-local-base-path = "/var/lib/gotosocial/storage";
|
||||
instance-languages = ["en-gb" "nl"];
|
||||
media-image-max-size = 41943040;
|
||||
media-video-max-size = 209715200;
|
||||
media-description-max-chars = 2000;
|
||||
#smtp-host = "localhost";
|
||||
#smtp-port = 587;
|
||||
#smtp-username = "no-reply@social.gladtherescake.eu";
|
||||
#smtp-password = config.sops.secrets."mailpassunhash".path;
|
||||
#smtp-from = "no-reply@social.gladtherescake.eu";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services."gotosocial" = {
|
||||
requires = ["postgresql.service"];
|
||||
after = ["postgresql.service"];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
{...}: {
|
||||
services.nginx = {
|
||||
virtualHosts = {
|
||||
"video.gladtherescake.eu" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:8096";
|
||||
proxyWebsockets = true; # needed if you need to use WebSocket
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.jellyfin = {
|
||||
enable = true;
|
||||
user = "nextcloud";
|
||||
group = "nextcloud";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,108 +0,0 @@
|
|||
{config, ...}: {
|
||||
sops.secrets."mailpass".mode = "0440";
|
||||
sops.secrets."mailpass".owner = config.users.users.virtualMail.name;
|
||||
|
||||
#Fix for the dovecot update
|
||||
# services.dovecot2.sieve.extensions = ["fileinto"];
|
||||
|
||||
mailserver = {
|
||||
stateVersion = 3;
|
||||
enable = true;
|
||||
enableImap = true;
|
||||
enableSubmission = true;
|
||||
fqdn = "mail.gladtherescake.eu";
|
||||
domains = [
|
||||
"nextcloud.gladtherescake.eu"
|
||||
"akkoma.gladtherescake.eu"
|
||||
"social.gladtherescake.eu"
|
||||
"gladtherescake.eu"
|
||||
"lillianviolet.dev"
|
||||
"git.lillianviolet.dev"
|
||||
];
|
||||
|
||||
loginAccounts = {
|
||||
"me@gladtherescake.eu" = {
|
||||
hashedPasswordFile = config.sops.secrets."mailpass".path;
|
||||
aliases = [
|
||||
"@gladtherescake.eu"
|
||||
];
|
||||
catchAll = [
|
||||
"gladtherescake.eu"
|
||||
];
|
||||
};
|
||||
"no-reply@nextcloud.gladtherescake.eu" = {
|
||||
hashedPasswordFile = config.sops.secrets."mailpass".path;
|
||||
};
|
||||
"no-reply@akkoma.gladtherescake.eu" = {
|
||||
hashedPasswordFile = config.sops.secrets."mailpass".path;
|
||||
};
|
||||
"no-reply@social.gladtherescake.eu" = {
|
||||
hashedPasswordFile = config.sops.secrets."mailpass".path;
|
||||
};
|
||||
"info@lillianviolet.dev" = {
|
||||
hashedPasswordFile = config.sops.secrets."mailpass".path;
|
||||
aliases = [
|
||||
"@lillianviolet.dev"
|
||||
];
|
||||
catchAll = [
|
||||
"lillianviolet.dev"
|
||||
];
|
||||
};
|
||||
"no-reply@git.lillianviolet.dev" = {
|
||||
hashedPasswordFile = config.sops.secrets."mailpass".path;
|
||||
};
|
||||
};
|
||||
|
||||
mailboxes = {
|
||||
All = {
|
||||
auto = "subscribe";
|
||||
specialUse = "All";
|
||||
};
|
||||
Archive = {
|
||||
auto = "subscribe";
|
||||
specialUse = "Archive";
|
||||
};
|
||||
Drafts = {
|
||||
auto = "subscribe";
|
||||
specialUse = "Drafts";
|
||||
};
|
||||
Junk = {
|
||||
auto = "subscribe";
|
||||
specialUse = "Junk";
|
||||
};
|
||||
Sent = {
|
||||
auto = "subscribe";
|
||||
specialUse = "Sent";
|
||||
};
|
||||
Trash = {
|
||||
auto = "no";
|
||||
specialUse = "Trash";
|
||||
};
|
||||
};
|
||||
|
||||
rejectRecipients = [
|
||||
"no-reply@nextcloud.gladtherescake.eu"
|
||||
"no-reply@akkoma.gladtherescake.eu"
|
||||
"no-reply@social.gladtherescake.eu"
|
||||
"no-reply@git.lillianviolet.dev"
|
||||
"ongebonden@gladtherescake.eu"
|
||||
"teluyep_canoja_52868396@gladtherescake.eu"
|
||||
"me.belsimpel@gladtherescake.eu"
|
||||
"me.tele2@gladtherescake.eu"
|
||||
"me+tele2@gladtherescake.eu"
|
||||
"me.archiveorg@gladtherescake.eu"
|
||||
];
|
||||
x509.useACMEHost = config.mailserver.fqdn;
|
||||
};
|
||||
security.acme.certs.${config.mailserver.fqdn} = {
|
||||
webroot = "/var/lib/acme/acme-challenge/";
|
||||
extraDomainNames = [
|
||||
"imap.lillianviolet.dev"
|
||||
"mail.lillianviolet.dev"
|
||||
"pop3.lillianviolet.dev"
|
||||
"lillianviolet.dev"
|
||||
"gladtherescake.eu"
|
||||
"mail.gladtherescake.eu"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
{config, ...}: {
|
||||
sops.secrets."mollysocket-vapid-key".mode = "0440";
|
||||
|
||||
services.mollysocket = {
|
||||
enable = true;
|
||||
environmentFile = config.sops.secrets."mollysocket-vapid-key".path;
|
||||
settings = {
|
||||
port = 4381;
|
||||
allowed_endpoints = ["https://molly.gladtherescake.eu" "https://nextcloud.gladtherescake.eu"];
|
||||
allowed_uuids = ["db639f29-b7e7-431a-9c75-bcdcb87b6bdf"];
|
||||
webserver = true;
|
||||
};
|
||||
};
|
||||
services.nginx = {
|
||||
virtualHosts = {
|
||||
"molly.gladtherescake.eu" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:4381";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,126 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
sops.secrets."nextcloudadmin".mode = "0440";
|
||||
sops.secrets."nextcloudadmin".owner = config.users.users.nextcloud.name;
|
||||
sops.secrets."nextclouddb".mode = "0440";
|
||||
sops.secrets."nextclouddb".owner = config.users.users.nextcloud.name;
|
||||
# sops.secrets."local.json".mode = "0440";
|
||||
# sops.secrets."local.json".owner = config.users.users.onlyoffice.name;
|
||||
|
||||
users.users = {
|
||||
# nextcloud.extraGroups = [config.users.groups.keys.name config.users.users.onlyoffice.name];
|
||||
nextcloud.extraGroups = [config.users.groups.keys.name];
|
||||
#aria2.extraGroups = ["nextcloud"];
|
||||
# onlyoffice.extraGroups = [config.users.users.nextcloud.name];
|
||||
};
|
||||
|
||||
# Enable Nginx
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
|
||||
# Use recommended settings
|
||||
recommendedGzipSettings = true;
|
||||
recommendedOptimisation = true;
|
||||
recommendedProxySettings = true;
|
||||
recommendedTlsSettings = true;
|
||||
|
||||
# Only allow PFS-enabled ciphers with AES256
|
||||
sslCiphers = "AES256+EECDH:AES256+EDH:!aNULL";
|
||||
|
||||
# Setup Nextcloud virtual host to listen on ports
|
||||
virtualHosts = {
|
||||
"nextcloud.gladtherescake.eu" = {
|
||||
## Force HTTP redirect to HTTPS
|
||||
forceSSL = true;
|
||||
## LetsEncrypt
|
||||
enableACME = true;
|
||||
};
|
||||
"onlyoffice.gladtherescake.eu" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Actual Nextcloud Config
|
||||
services.nextcloud = {
|
||||
enable = true;
|
||||
hostName = "nextcloud.gladtherescake.eu";
|
||||
|
||||
package = pkgs.nextcloud33;
|
||||
|
||||
# Use HTTPS for links
|
||||
https = true;
|
||||
|
||||
# Auto-update Nextcloud Apps
|
||||
autoUpdateApps.enable = true;
|
||||
# Set what time makes sense for you
|
||||
autoUpdateApps.startAt = "05:00:00";
|
||||
configureRedis = true;
|
||||
maxUploadSize = "16G";
|
||||
|
||||
#Increase opcache string buffer
|
||||
phpOptions."opcache.interned_strings_buffer" = "23";
|
||||
# Further forces Nextcloud to use HTTPS
|
||||
settings = {
|
||||
overwriteprotocol = "https";
|
||||
default_phone_region = "NL";
|
||||
maintenance_window_start = 3;
|
||||
log_type = "file";
|
||||
};
|
||||
appstoreEnable = true;
|
||||
extraAppsEnable = true;
|
||||
#extraApps = with config.services.nextcloud.package.packages.apps; {
|
||||
# List of apps we want to install and are already packaged in
|
||||
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/nextcloud/packages/nextcloud-apps.json
|
||||
# inherit calendar contacts deck forms notes onlyoffice polls twofactor_nextcloud_notification unsplash;
|
||||
#};
|
||||
|
||||
config = {
|
||||
# Nextcloud PostegreSQL database configuration, recommended over using SQLite
|
||||
dbtype = "pgsql";
|
||||
dbuser = "nextcloud";
|
||||
dbhost = "/run/postgresql"; # nextcloud will add /.s.PGSQL.5432 by itself
|
||||
dbname = "nextcloud";
|
||||
dbpassFile = config.sops.secrets."nextclouddb".path;
|
||||
|
||||
adminpassFile = config.sops.secrets."nextcloudadmin".path;
|
||||
adminuser = "GLaDTheresCake";
|
||||
};
|
||||
};
|
||||
|
||||
# services.onlyoffice = {
|
||||
# port = 16783;
|
||||
# enable = true;
|
||||
# hostname = "onlyoffice.gladtherescake.eu";
|
||||
# #postgresHost = "/run/postgesql";
|
||||
# #postgresUser = "onlyoffice";
|
||||
# #postgresName = "onlyoffice";
|
||||
# #jwtSecretFile = config.sops.secrets."local.json".path;
|
||||
# };
|
||||
|
||||
# services.rabbitmq = {
|
||||
# enable = true;
|
||||
# };
|
||||
|
||||
systemd.services."sops-nix.service" = {
|
||||
before = [
|
||||
"nextcloud-setup.service"
|
||||
"postgresql.service"
|
||||
"onlyoffice-converter.service"
|
||||
"onlyoffice-docservice.service"
|
||||
"nginx.service"
|
||||
"phpfpm-nextcloud.service"
|
||||
"redis-nextcloud.service"
|
||||
];
|
||||
};
|
||||
|
||||
# Ensure that postgres is running before running the setup
|
||||
systemd.services."nextcloud-setup" = {
|
||||
requires = ["postgresql.service"];
|
||||
after = ["postgresql.service"];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
{...}: {
|
||||
users.users = {
|
||||
ombi.extraGroups = ["radarr" "sonarr" "aria2" "nextcloud"];
|
||||
};
|
||||
services.ombi = {
|
||||
enable = true;
|
||||
port = 2368;
|
||||
};
|
||||
|
||||
users.users = {
|
||||
radarr.extraGroups = ["aria2" "nextcloud"];
|
||||
sonarr.extraGroups = ["aria2" "nextcloud"];
|
||||
};
|
||||
|
||||
services = {
|
||||
#uses port 7878
|
||||
radarr.enable = true;
|
||||
#uses port 8989
|
||||
sonarr.enable = true;
|
||||
prowlarr.enable = true;
|
||||
};
|
||||
|
||||
services.nginx = {
|
||||
virtualHosts = {
|
||||
"ombi.gladtherescake.eu" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:2368";
|
||||
};
|
||||
};
|
||||
"radarr.gladtherescake.eu" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:7878";
|
||||
};
|
||||
};
|
||||
"sonarr.gladtherescake.eu" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:8989";
|
||||
};
|
||||
};
|
||||
"prowlarr.gladtherescake.eu" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:9696";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
virtualHosts = {
|
||||
"phanpy.gladtherescake.eu" = {
|
||||
root = "${pkgs.phanpy}";
|
||||
## Force HTTP redirect to HTTPS
|
||||
forceSSL = true;
|
||||
## LetsEncrypt
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
index = "index.html";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
services.postgresql = {
|
||||
# https://nixos.org/manual/nixos/stable/#module-postgresql
|
||||
package = pkgs.postgresql_16;
|
||||
enable = true;
|
||||
|
||||
# Ensure the database, user, and ownership is set
|
||||
ensureDatabases = [
|
||||
"nextcloud"
|
||||
"onlyoffice"
|
||||
"akkoma"
|
||||
"gotosocial"
|
||||
"gitea"
|
||||
];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = "nextcloud";
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
{
|
||||
name = "onlyoffice";
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
{
|
||||
name = "akkoma";
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
{
|
||||
name = "gotosocial";
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
{
|
||||
name = "gitea";
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = [
|
||||
(let
|
||||
# XXX specify the postgresql package you'd like to upgrade to.
|
||||
# Do not forget to list the extensions you need.
|
||||
newPostgres = pkgs.postgresql_16.withPackages (pp: [
|
||||
# pp.plv8
|
||||
]);
|
||||
in
|
||||
pkgs.writeScriptBin "upgrade-pg-cluster" ''
|
||||
set -eux
|
||||
# XXX it's perhaps advisable to stop all services that depend on postgresql
|
||||
systemctl stop postgresql
|
||||
|
||||
export NEWDATA="/var/lib/postgresql/${newPostgres.psqlSchema}"
|
||||
|
||||
export NEWBIN="${newPostgres}/bin"
|
||||
|
||||
export OLDDATA="${config.services.postgresql.dataDir}"
|
||||
export OLDBIN="${config.services.postgresql.package}/bin"
|
||||
|
||||
install -d -m 0700 -o postgres -g postgres "$NEWDATA"
|
||||
cd "$NEWDATA"
|
||||
sudo -u postgres $NEWBIN/initdb -D "$NEWDATA"
|
||||
|
||||
sudo -u postgres $NEWBIN/pg_upgrade \
|
||||
--old-datadir "$OLDDATA" --new-datadir "$NEWDATA" \
|
||||
--old-bindir $OLDBIN --new-bindir $NEWBIN \
|
||||
"$@"
|
||||
'')
|
||||
];
|
||||
}
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# TODO: Figure out how to create packages for some plugins for roundcube!
|
||||
# https://packagist.org/search/?query=roundcube
|
||||
# https://discourse.nixos.org/t/roundcube-with-plugins/28292/7
|
||||
services.roundcube = {
|
||||
enable = true;
|
||||
package = pkgs.roundcube.withPlugins (
|
||||
plugins: [
|
||||
plugins.contextmenu
|
||||
plugins.carddav
|
||||
plugins.custom_from
|
||||
plugins.persistent_login
|
||||
plugins.thunderbird_labels
|
||||
]
|
||||
);
|
||||
plugins = [
|
||||
"contextmenu"
|
||||
"carddav"
|
||||
"custom_from"
|
||||
"persistent_login"
|
||||
"thunderbird_labels"
|
||||
];
|
||||
|
||||
# this is the url of the vhost, not necessarily the same as the fqdn of
|
||||
# the mailserver
|
||||
hostName = "webmail.lillianviolet.dev";
|
||||
extraConfig = ''
|
||||
# starttls needed for authentication, so the fqdn required to match
|
||||
# the certificate
|
||||
$config['smtp_server'] = "tls://${config.mailserver.fqdn}";
|
||||
$config['smtp_user'] = "%u";
|
||||
$config['smtp_pass'] = "%p";
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
sops.secrets."writefreely".mode = "0440";
|
||||
sops.secrets."writefreely".owner = config.users.users.writefreely.name;
|
||||
sops.secrets."writefreelymysql".mode = "0440";
|
||||
sops.secrets."writefreelymysql".owner = config.users.users.writefreely.name;
|
||||
services.writefreely = {
|
||||
enable = true;
|
||||
host = "writefreely.gladtherescake.eu";
|
||||
nginx.enable = true;
|
||||
nginx.forceSSL = true;
|
||||
acme.enable = true;
|
||||
# database = {
|
||||
# type = "mysql";
|
||||
# createLocally = true;
|
||||
# passwordFile = config.sops.secrets."writefreelymysql".path;
|
||||
# };
|
||||
admin = {
|
||||
initialPasswordFile = config.sops.secrets."writefreely".path;
|
||||
name = "GLaDTheresCake";
|
||||
};
|
||||
settings = {
|
||||
app = {
|
||||
min_username_len = 2;
|
||||
max_blogs = 100;
|
||||
default_visibility = "public";
|
||||
federation = true;
|
||||
local_timeline = true;
|
||||
};
|
||||
server.port = 1212;
|
||||
};
|
||||
};
|
||||
systemd.services.writefreely = {
|
||||
path = [pkgs.libressl];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.sopsSetup;
|
||||
in {
|
||||
options = {
|
||||
sopsSetup.enable = lib.mkEnableOption "Enable Module";
|
||||
global.desktop = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Whether or not to install shared desktop secrets.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
sops = {
|
||||
age.keyFile = "/var/secrets/keys.txt";
|
||||
secrets."lillian-password".neededForUsers = true;
|
||||
|
||||
defaultSopsFile = ../hosts/${config.networking.hostName}/secrets/sops.yaml;
|
||||
|
||||
secrets."wg-private-key".mode = "0440";
|
||||
secrets."wg-private-key".owner = config.users.users.root.name;
|
||||
|
||||
secrets."ssh-private-key" = {
|
||||
mode = "0600";
|
||||
owner = config.users.users.lillian.name;
|
||||
path = "/home/lillian/.ssh/id_ed25519";
|
||||
};
|
||||
};
|
||||
secrets."nextcloud-password" = lib.mkIf (cfg.desktop == true) {
|
||||
mode = "0600";
|
||||
owner = config.users.users.lillian.name;
|
||||
path = "/home/lillian/.netrc";
|
||||
};
|
||||
secrets."prod.keys" = lib.mkIf (cfg.desktop == true) {
|
||||
mode = "0600";
|
||||
owner = config.users.users.lillian.name;
|
||||
path = "/home/lillian/.config/Ryujinx/system/prod.keys";
|
||||
};
|
||||
secrets."title.keys" = lib.mkIf (cfg.desktop == true) {
|
||||
mode = "0600";
|
||||
owner = config.users.users.lillian.name;
|
||||
path = "/home/lillian/.config/Ryujinx/system/title.keys";
|
||||
};
|
||||
};
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 158 KiB |
|
|
@ -1,66 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.stylixSetup;
|
||||
in {
|
||||
options = {
|
||||
stylixSetup.enable = lib.mkEnableOption "Enable Module";
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
stylix = {
|
||||
# targets.qt.platform = lib.mkForce "kde";
|
||||
enable = true;
|
||||
# targets.qt.platform = "kde6";
|
||||
autoEnable = true;
|
||||
base16Scheme = {
|
||||
scheme = "Catppuccin Macchiato Mauve";
|
||||
author = "https://github.com/catppuccin/catppuccin";
|
||||
base00 = "24273a";
|
||||
base01 = "1e2030";
|
||||
base02 = "363a4f";
|
||||
base03 = "494d64";
|
||||
base04 = "5b6078";
|
||||
base05 = "cad3f5";
|
||||
base06 = "f4dbd6";
|
||||
base07 = "b7bdf8";
|
||||
base08 = "ed8796";
|
||||
base09 = "f5a97f";
|
||||
base0A = "eed49f";
|
||||
base0B = "a6da95";
|
||||
base0C = "8bd5ca";
|
||||
base0D = "c6a0f6";
|
||||
base0E = "8aadf4";
|
||||
base0F = "f0c6c6";
|
||||
};
|
||||
image = ./background.jpg;
|
||||
cursor.package = pkgs.catppuccin-cursors.macchiatoMauve;
|
||||
cursor.name = "catppuccin-macchiato-mauve-cursors";
|
||||
cursor.size = 24;
|
||||
homeManagerIntegration.followSystem = true;
|
||||
fonts = {
|
||||
serif = {
|
||||
package = pkgs.atkinson-hyperlegible;
|
||||
name = "Atkinson Hyperlegible Next";
|
||||
};
|
||||
|
||||
monospace = {
|
||||
package = pkgs.atkinson-hyperlegible-mono;
|
||||
name = "Atkinson Hyperlegbile Mono";
|
||||
};
|
||||
|
||||
sansSerif = {
|
||||
package = pkgs.atkinson-hyperlegible;
|
||||
name = "Atkinson Hyperlegible Next";
|
||||
};
|
||||
|
||||
emoji = {
|
||||
package = pkgs.noto-fonts-emoji-blob-bin;
|
||||
name = "Blobmoji";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
{lib, ...}:
|
||||
with lib; {
|
||||
# Declare what settings a user of this "hello.nix" module CAN SET.
|
||||
options.services.vpn-ip = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
};
|
||||
ip = mkOption {
|
||||
type = types.str;
|
||||
default = "0";
|
||||
};
|
||||
publicKey = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
};
|
||||
};
|
||||
}
|
||||
20
mount.sh
20
mount.sh
|
|
@ -1,20 +0,0 @@
|
|||
|
||||
declare -a folders=( "/var/lib/sbctl" "/var/lib/bluetooth" "/var/lib/fprint" "/var/lib/fwupd" "/var/lib/libvirt" "/var/lib/tpm2-tss" "/var/lib/tpm2-udev-trigger" "/var/lib/power-profiles-daemon" "/var/lib/systemd/coredump" "/var/lib/systemd/rfkill" "/var/lib/systemd/timers" "/var/log" "/var/lib/decky-loader" "/var/lib/flatpak" "/var/lib/nixos" "/var/secrets" )
|
||||
declare -a files=( "/etc/machine-id" "/var/lib/systemd/random-seed" "/var/secrets/keys.txt" "/var/lib/systemd/tpm2-srk-public-key.pem" "/var/lib/systemd/tpm2-srk-public-key.tpm2b_public" )
|
||||
declare -a lillianfolders=( ".ssh" ".local/state/wireplumber" ".local/share/direnv" ".local/state/nix" ".local/state/comma" ".local/state/home-manager" ".local/share/PrismLauncher" ".local/share/qBittorrent" ".local/share/kwalletd" ".local/share/kwin" ".local/share/lutris" ".local/share/Nextcloud" ".local/share/Steam" ".local/share/zoxide" ".local/share/flatpak" ".local/share/applications" ".local/share/firefoxpwa/" ".local/share/com.nonpolynomial.intiface_central" ".mozilla" ".steam" ".zsh" ".pki" ".tldrc" ".thunderbird" "Code" "Writing" ".config/kdeconnect" ".config/Nextcloud" ".config/noisetorch" ".config/qBittorrent" ".config/r2modman" ".config/r2modmanPlus-local" ".config/Ryujinx" ".config/Signal" ".config/sops" ".config/vesktop" ".config/kde.org" )
|
||||
|
||||
for folder in "${folders[@]}"
|
||||
do
|
||||
mount --bind -o X-mount.mkdir "/mnt/persistent$folder" "/mnt$folder"
|
||||
done
|
||||
|
||||
for lfolder in "${lillianfolders[@]}"
|
||||
do
|
||||
mount --bind -o X-mount.mkdir "/mnt/persistent/home/lillian/$lfolder" "/mnt/home/lillian/$lfolder"
|
||||
done
|
||||
|
||||
for file in "${files[@]}"
|
||||
do
|
||||
mkdir -p "`dirname $file`"
|
||||
ln -sf "/mnt/persistent$file" "/mnt$file"
|
||||
done
|
||||
|
|
@ -1,4 +1,11 @@
|
|||
{...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
services.pihole = {
|
||||
enable = true;
|
||||
hostConfig = {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# This is your system's configuration file.
|
||||
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
|
|
@ -16,9 +17,9 @@
|
|||
nixpkgs = {
|
||||
# You can add overlays here
|
||||
overlays = [
|
||||
#(final: prev: {
|
||||
#bcachefs-tools = pkgs-edge.bcachefs-tools;
|
||||
#})
|
||||
(final: prev: {
|
||||
bcachefs-tools = pkgs-edge.bcachefs-tools;
|
||||
})
|
||||
# Add overlays your own flake exports (from overlays and pkgs dir):
|
||||
outputs.overlays.additions
|
||||
outputs.overlays.modifications
|
||||
|
|
@ -28,17 +29,14 @@
|
|||
allowUnfree = true;
|
||||
};
|
||||
};
|
||||
services.udev.extraRules = ''
|
||||
KERNEL=="hidraw*", ATTRS{idVendor}=="057e", MODE="0660", TAG+="uaccess"
|
||||
KERNEL=="hidraw*", KERNELS=="*057e:*", MODE="0660", TAG+="uaccess"
|
||||
KERNEL=="hidraw*", ATTRS{idVendor}=="2dc8", MODE="0660", TAG+="uaccess"
|
||||
KERNEL=="hidraw*", KERNELS=="*2DC8:*", MODE="0660", TAG+="uaccess"
|
||||
KERNEL=="hidraw*", ATTRS{idProduct}=="6012", ATTRS{idVendor}=="2dc8", MODE="0660", TAG+="uaccess"
|
||||
KERNEL=="hidraw*", KERNELS=="*2DC8:6012*", MODE="0660", TAG+="uaccess"
|
||||
'';
|
||||
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
# Allow executing of anything on the system with a , eg: , python executes python from the nix store even if not in $PATH currently
|
||||
programs.command-not-found.enable = lib.mkForce false;
|
||||
programs.nix-index.enable = true;
|
||||
programs.nix-index-database.comma.enable = true;
|
||||
|
||||
environment.systemPackages =
|
||||
(with pkgs; [
|
||||
# Custom tools
|
||||
dvd
|
||||
dvt
|
||||
|
|
@ -47,212 +45,149 @@
|
|||
|
||||
# System tools
|
||||
aha
|
||||
ttf-ms-win10
|
||||
wineWow64Packages.stable
|
||||
bottles
|
||||
tpm2-abrmd
|
||||
jdk21_headless
|
||||
#bcachefs-tools
|
||||
bcachefs-tools
|
||||
clinfo
|
||||
comma
|
||||
direnv
|
||||
exfat
|
||||
exfatprogs
|
||||
gamemode
|
||||
git-filter-repo
|
||||
gnupg
|
||||
pciutils
|
||||
podman
|
||||
podman-compose
|
||||
python3Minimal
|
||||
sbctl
|
||||
tpm2-tools
|
||||
tpm2-tss
|
||||
virtualgl
|
||||
vulkan-tools
|
||||
# waydroid
|
||||
waydroid
|
||||
waypipe
|
||||
wayland-utils
|
||||
xwaylandvideobridge
|
||||
yubikey-personalization
|
||||
zsh
|
||||
|
||||
# KDE/QT
|
||||
kdePackages.plasma-desktop
|
||||
kdePackages.plasma-wayland-protocols
|
||||
kdePackages.libplasma
|
||||
kdePackages.plasma-integration
|
||||
kdePackages.plasma-activities
|
||||
kdePackages.plasma-workspace
|
||||
krunner-translator
|
||||
kdePackages.discover
|
||||
kdePackages.filelight
|
||||
kdePackages.kcalc
|
||||
kdePackages.kdepim-addons
|
||||
kdePackages.kirigami
|
||||
kdePackages.kdeconnect-kde
|
||||
kdePackages.konsole
|
||||
# kdePackages.krunner-ssh
|
||||
# kdePackages.krunner-symbols
|
||||
kdePackages.packagekit-qt
|
||||
kdePackages.plasma-pa
|
||||
kdePackages.sddm-kcm
|
||||
kdePackages.dolphin-plugins
|
||||
kdePackages.qtstyleplugin-kvantum
|
||||
kdePackages.krdc
|
||||
kdePackages.krfb
|
||||
kdePackages.kate
|
||||
kdePackages.qrca
|
||||
libportal-qt5
|
||||
libportal
|
||||
|
||||
# User tools
|
||||
freetube
|
||||
noisetorch
|
||||
qjackctl
|
||||
wireplumber
|
||||
intiface-central
|
||||
#rustdesk
|
||||
]
|
||||
rustdesk
|
||||
])
|
||||
++ (with pkgs-edge; [
|
||||
kdePackages.plasma-vault
|
||||
# list of latest packages from nixpkgs master
|
||||
# Can be used to install latest version of some packages
|
||||
]);
|
||||
|
||||
fonts.packages = [pkgs.ttf-ms-win10];
|
||||
sops = {
|
||||
secrets."nextcloud-password" = {
|
||||
mode = "0600";
|
||||
owner = config.users.users.lillian.name;
|
||||
path = "/home/lillian/.netrc";
|
||||
};
|
||||
secrets."prod.keys" = {
|
||||
mode = "0600";
|
||||
owner = config.users.users.lillian.name;
|
||||
path = "/home/lillian/.config/Ryujinx/system/prod.keys";
|
||||
};
|
||||
secrets."title.keys" = {
|
||||
mode = "0600";
|
||||
owner = config.users.users.lillian.name;
|
||||
path = "/home/lillian/.config/Ryujinx/system/title.keys";
|
||||
};
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
# Allow executing of anything on the system with a , eg: , python executes python from the nix store even if not in $PATH currently
|
||||
command-not-found.enable = lib.mkForce false;
|
||||
# nix-index.enable = true;
|
||||
nix-index-database.comma.enable = true;
|
||||
|
||||
direnv = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# steam = {
|
||||
# enable = true;
|
||||
# remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
# dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
# extest.enable = true;
|
||||
# };
|
||||
kdeconnect.enable = true;
|
||||
|
||||
noisetorch = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal.enable = true;
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true; # Enables support for 32bit libs that steam uses
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
extest.enable = true;
|
||||
};
|
||||
hardware.graphics.enable32Bit = true; # Enables support for 32bit libs that steam uses
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Amsterdam";
|
||||
services = {
|
||||
# Enable the X11 windowing system.
|
||||
xserver.enable = true;
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
# displayManager.sddm = {
|
||||
# enable = true;
|
||||
# wayland.enable = true;
|
||||
# };
|
||||
desktopManager.plasma6.notoPackage = pkgs.atkinson-hyperlegible;
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable flatpak support
|
||||
flatpak.enable = true;
|
||||
packagekit.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
options = "terminate:ctrl_alt_bksp,compose:caps_toggle";
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
printing.enable = true;
|
||||
|
||||
# Enable fwupd daemon and user space client
|
||||
fwupd.enable = true;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
wireplumber.enable = true;
|
||||
};
|
||||
|
||||
avahi = {
|
||||
nssmdns4 = true;
|
||||
enable = true;
|
||||
ipv4 = true;
|
||||
ipv6 = true;
|
||||
publish = {
|
||||
enable = true;
|
||||
addresses = true;
|
||||
workstation = true;
|
||||
};
|
||||
};
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
};
|
||||
hardware = {
|
||||
graphics.enable32Bit = true;
|
||||
services.displayManager.defaultSession = "plasma";
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
programs.kdeconnect.enable = true;
|
||||
|
||||
# Enable bluetooth hardware
|
||||
bluetooth.enable = true;
|
||||
# Enable flatpak support
|
||||
services.flatpak.enable = true;
|
||||
services.packagekit.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
options = "terminate:ctrl_alt_bksp,compose:caps_toggle";
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable bluetooth hardware
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
# Enable fwupd daemon and user space client
|
||||
services.fwupd.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
wireplumber.enable = true;
|
||||
};
|
||||
|
||||
programs.noisetorch = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
services.pulseaudio.enable = false;
|
||||
virtualisation.podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
};
|
||||
security.tpm2 = {
|
||||
enable = true;
|
||||
pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so
|
||||
tctiEnvironment.enable = true;
|
||||
}; # TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables
|
||||
users.users.lillian.extraGroups = ["tss"];
|
||||
boot = {
|
||||
# tss group has access to TPM devices
|
||||
bootspec.enable = true;
|
||||
binfmt.emulatedSystems = ["aarch64-linux"];
|
||||
#boot.kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
|
||||
#boot.supportedFilesystems = ["bcachefs"];
|
||||
extraModulePackages = with config.boot.kernelPackages; [v4l2loopback.out];
|
||||
kernelModules = [
|
||||
# Virtual Camera
|
||||
"v4l2loopback"
|
||||
# Virtual Microphone, built-in
|
||||
"snd-aloop"
|
||||
];
|
||||
|
||||
# Set initial kernel module settings
|
||||
extraModprobeConfig = ''
|
||||
# exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming
|
||||
# card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams
|
||||
# https://github.com/umlaeute/v4l2loopback
|
||||
options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
|
||||
'';
|
||||
loader.systemd-boot.configurationLimit = 3;
|
||||
loader.efi.canTouchEfiVariables = true;
|
||||
};
|
||||
security.tpm2.enable = true;
|
||||
security.tpm2.pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so
|
||||
security.tpm2.tctiEnvironment.enable = true; # TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables
|
||||
users.users.lillian.extraGroups = ["tss"]; # tss group has access to TPM devices
|
||||
|
||||
# FIXME: re-enable virtual camera loopback when it build again.
|
||||
boot.bootspec.enable = true;
|
||||
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
|
||||
boot.supportedFilesystems = ["bcachefs"];
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [v4l2loopback.out];
|
||||
boot.kernelModules = [
|
||||
# Virtual Camera
|
||||
"v4l2loopback"
|
||||
# Virtual Microphone, built-in
|
||||
"snd-aloop"
|
||||
];
|
||||
# Set initial kernel module settings
|
||||
boot.extraModprobeConfig = ''
|
||||
# exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming
|
||||
# card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams
|
||||
# https://github.com/umlaeute/v4l2loopback
|
||||
options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
|
||||
'';
|
||||
boot.loader.systemd-boot.configurationLimit = 3;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,11 @@
|
|||
{...}: {
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./firefox
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
package = pkgs.librewolf;
|
||||
package = pkgs.firefox;
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
|
|
@ -24,16 +28,16 @@
|
|||
};
|
||||
ExtensionSettings = {
|
||||
# "*".installation_mode = "blocked"; # blocks all addons except the ones specified below
|
||||
# Catppuccin Macchiato - Mauve theme:
|
||||
"{55750c61-e5f3-4d9a-898d-0643b3093678}" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/catppuccin-macchiato-mauve/latest.xpi";
|
||||
# Catppuccin Macchiato - Lavender theme:
|
||||
"{6396519b-0923-41a4-948a-3cb54a3918b3}" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/catppuccin-macchiato-lavender/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Sideberry:
|
||||
#"{3c078156-979c-498b-8990-85f7987dd929}" = {
|
||||
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/sidebery/latest.xpi";
|
||||
# installation_mode = "force_installed";
|
||||
#};
|
||||
"{3c078156-979c-498b-8990-85f7987dd929}" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/sidebery/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Privacy Badger:
|
||||
"jid1-MnnxcxisBPnSXQ@jetpack" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
|
||||
|
|
@ -114,16 +118,6 @@
|
|||
install_url = "https://addons.mozilla.org/firefox/downloads/file/4047136/wayback_machine_new-3.2.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Tree Style Tabs
|
||||
# "treestyletab@piro.sakura.ne.jp" = {
|
||||
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/tree-style-tab/latest.xpi";
|
||||
# installation_mode = "force_installed";
|
||||
# };
|
||||
# Adaptive Tab Bar Colour
|
||||
"ATBC@EasonWong" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/Adaptive-Tab-Bar-Colour/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
};
|
||||
FirefoxHome = {
|
||||
Search = true;
|
||||
|
|
@ -143,21 +137,12 @@
|
|||
"browser.compactmode.show" = true;
|
||||
"browser.uidensity" = 0;
|
||||
# "browser.newtabpage.activity-stream.feeds.topsites" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.system.showSponsored" = false;
|
||||
# "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"font.name.serif.x-western" = "Crimson";
|
||||
"font.name.sans-serif.x-western" = "Atkinson Hyperlegible";
|
||||
"font.name.monospace.x-western" = "FiraCode Nerd Font";
|
||||
"font.size.variable.x-western" = 14;
|
||||
"floorp.browser.sidebar.useIconProvider" = "duckduckgo";
|
||||
"floorp.browser.tabbar.settings" = 2;
|
||||
"floorp.browser.tabs.verticaltab" = true;
|
||||
"floorp.tabbar.style" = 2;
|
||||
"floorp.browser.user.interface" = 8;
|
||||
"signon.rememberSignons" = true;
|
||||
"browser.ml.chat.enabled" = false;
|
||||
"browser.ml.chat.shortcuts" = false;
|
||||
};
|
||||
# TODO: switch to ManagedBookmarks as this will be dropped at some point https://mozilla.github.io/policy-templates/#managedbookmarks
|
||||
# Bookmarks = [
|
||||
|
|
|
|||
|
|
@ -1,13 +1,17 @@
|
|||
# This is your system's configuration file.
|
||||
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other NixOS modules here
|
||||
imports = [
|
||||
# Import home-manager's NixOS module
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
# If you want to use modules your own flake exports (from modules/nixos):
|
||||
# outputs.nixosModules.example
|
||||
|
||||
|
|
@ -18,94 +22,41 @@
|
|||
# You can also split up your configuration and import pieces of it here:
|
||||
# ./users.nix
|
||||
|
||||
outputs.nixosModules.vpn-ip
|
||||
../../desktop
|
||||
|
||||
../../../disko/EDI
|
||||
|
||||
# Import your generated (nixos-generate-config) hardware configuration
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
sops.defaultSopsFile = ./secrets/sops.yaml;
|
||||
|
||||
home-manager = {
|
||||
extraSpecialArgs = {inherit inputs outputs;};
|
||||
users = {
|
||||
# Import your home-manager configuration
|
||||
lillian = import ../../../home-manager/hosts/EDI;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
gparted
|
||||
];
|
||||
|
||||
programs.steam = {
|
||||
networking.hostName = "EDI";
|
||||
|
||||
# Lanzaboote currently replaces the systemd-boot module.
|
||||
# This setting is usually set to true in configuration.nix
|
||||
# generated at installation time. So we force it to false
|
||||
# for now.
|
||||
boot.loader.systemd-boot.enable = lib.mkForce false;
|
||||
boot.initrd.systemd.enable = true;
|
||||
|
||||
boot.lanzaboote = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
extest.enable = true;
|
||||
};
|
||||
|
||||
programs.virt-manager.enable = true;
|
||||
|
||||
users.groups.libvirtd.members = ["lillian"];
|
||||
|
||||
virtualisation.libvirtd.enable = true;
|
||||
|
||||
virtualisation.spiceUSBRedirection.enable = true;
|
||||
services = {
|
||||
displayManager.plasma-login-manager = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
displayManager.defaultSession = "plasma";
|
||||
desktopManager.plasma6.enable = true;
|
||||
|
||||
samba = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
settings = {
|
||||
global = {
|
||||
"invalid users" = [
|
||||
"root"
|
||||
];
|
||||
"passwd program" = "/run/wrappers/bin/passwd %u";
|
||||
security = "user";
|
||||
};
|
||||
public = {
|
||||
browseable = "yes";
|
||||
comment = "Public samba share.";
|
||||
"guest ok" = "yes";
|
||||
path = "/home/lillian/samba";
|
||||
"read only" = "no";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
vpn-ip = {
|
||||
ip = "3";
|
||||
};
|
||||
};
|
||||
users.groups.samba.members = ["lillian"];
|
||||
|
||||
networking = {
|
||||
hostName = "EDI";
|
||||
networkmanager.enable = true;
|
||||
};
|
||||
|
||||
hardware.enableAllFirmware = true;
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
|
||||
boot = {
|
||||
# Lanzaboote currently replaces the systemd-boot module.
|
||||
# This setting is usually set to true in configuration.nix
|
||||
# generated at installation time. So we force it to false
|
||||
# for now.
|
||||
loader.systemd-boot.enable = lib.mkForce false;
|
||||
initrd.systemd.enable = true;
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
supportedFilesystems = ["btrfs" "bcachefs"];
|
||||
|
||||
binfmt.emulatedSystems = ["aarch64-linux"];
|
||||
|
||||
lanzaboote = {
|
||||
enable = true;
|
||||
pkiBundle = "/var/lib/sbctl";
|
||||
};
|
||||
kernelModules = [
|
||||
"iwlmvm"
|
||||
"iwlwifi"
|
||||
];
|
||||
pkiBundle = "/etc/secureboot";
|
||||
};
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
system.stateVersion = "26.05";
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -3,15 +3,15 @@
|
|||
{
|
||||
inputs,
|
||||
outputs,
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other NixOS modules here
|
||||
imports = [
|
||||
# Import home-manager's NixOS module
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
outputs.nixosModules.vpn-ip
|
||||
# If you want to use modules your own flake exports (from modules/nixos):
|
||||
# outputs.nixosModules.example
|
||||
|
||||
|
|
@ -22,138 +22,70 @@
|
|||
# You can also split up your configuration and import pieces of it here:
|
||||
# ./users.nix
|
||||
|
||||
../../desktop
|
||||
|
||||
../../../disko/GLaDOS
|
||||
|
||||
# Import your generated (nixos-generate-config) hardware configuration
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
sops.defaultSopsFile = ./secrets/sops.yaml;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
gparted
|
||||
];
|
||||
services = {
|
||||
displayManager.plasma-login-manager = {
|
||||
enable = true;
|
||||
|
||||
services.xserver.videoDrivers = ["amdgpu"];
|
||||
|
||||
# Add vulkan support to GPU
|
||||
hardware.graphics.extraPackages = with pkgs; [
|
||||
amdvlk
|
||||
];
|
||||
# For 32 bit applications
|
||||
hardware.graphics.extraPackages32 = with pkgs; [
|
||||
driversi686Linux.amdvlk
|
||||
];
|
||||
|
||||
programs.gamemode = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
renice = 10;
|
||||
};
|
||||
|
||||
# Warning: GPU optimisations have the potential to damage hardware
|
||||
gpu = {
|
||||
apply_gpu_optimisations = "accept-responsibility";
|
||||
gpu_device = 0;
|
||||
amd_performance_level = "high";
|
||||
};
|
||||
|
||||
custom = {
|
||||
start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
|
||||
end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
|
||||
};
|
||||
};
|
||||
|
||||
displayManager.defaultSession = "plasma";
|
||||
desktopManager.plasma6.enable = true;
|
||||
|
||||
vpn-ip = {
|
||||
ip = "2";
|
||||
};
|
||||
|
||||
xserver.videoDrivers = ["amdgpu"];
|
||||
};
|
||||
|
||||
networking.hostName = "GLaDOS";
|
||||
programs = {
|
||||
steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
extest.enable = true;
|
||||
};
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
|
||||
# gamemode.enable = false;
|
||||
# gamemode.settings = {
|
||||
# general = {
|
||||
# renice = 10;
|
||||
# };
|
||||
|
||||
# # Warning: GPU optimisations have the potential to damage hardware
|
||||
# # gpu = {
|
||||
# # apply_gpu_optimisations = "accept-responsibility";
|
||||
# # gpu_device = 0;
|
||||
# # amd_performance_level = "high";
|
||||
# # };
|
||||
|
||||
# custom = {
|
||||
# start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
|
||||
# end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
|
||||
# };
|
||||
# };
|
||||
};
|
||||
boot = {
|
||||
initrd.systemd.services.rollback = {
|
||||
description = "Rollback BTRFS root subvolume to a pristine state";
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
serviceConfig.Type = "oneshot";
|
||||
wantedBy = ["initrd.target"];
|
||||
after = ["systemd-cryptsetup@nvme_crypted.service"];
|
||||
before = ["sysroot.mount"];
|
||||
|
||||
script = ''
|
||||
echo "mounting btrfs volume to tmp..."
|
||||
mkdir -p /btrfs_tmp
|
||||
mount /dev/mapper/nvme_crypted /btrfs_tmp
|
||||
echo "mount successful!"
|
||||
|
||||
if [[ -e /btrfs_tmp/root ]]; then
|
||||
echo "copying root to backup..."
|
||||
mkdir -p /btrfs_tmp/old_roots
|
||||
timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
|
||||
mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
|
||||
echo "copy complete!"
|
||||
fi
|
||||
|
||||
if [[ -e /btrfs_tmp/home ]]; then
|
||||
echo "copying home to backup..."
|
||||
mkdir -p /btrfs_tmp/old_homes
|
||||
timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/home)" "+%Y-%m-%-d_%H:%M:%S")
|
||||
mv /btrfs_tmp/home "/btrfs_tmp/old_homes/$timestamp"
|
||||
echo "copy complete!"
|
||||
fi
|
||||
|
||||
|
||||
delete_subvolume_recursively() {
|
||||
IFS=$'\n'
|
||||
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
||||
delete_subvolume_recursively "/btrfs_tmp/$i"
|
||||
done
|
||||
btrfs subvolume delete "$1"
|
||||
}
|
||||
|
||||
echo "recursively deleting root subvolumes older than five days..."
|
||||
for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +5); do
|
||||
delete_subvolume_recursively "$i"
|
||||
done
|
||||
echo "subvolumes deleted!"
|
||||
|
||||
echo "recursively deleting home subvolumes older than five days..."
|
||||
for i in $(find /btrfs_tmp/old_homes/ -maxdepth 1 -mtime +5); do
|
||||
delete_subvolume_recursively "$i"
|
||||
done
|
||||
echo "subvolumes deleted!"
|
||||
|
||||
echo "creating new root and home subvolumes..."
|
||||
btrfs subvolume create /btrfs_tmp/root
|
||||
btrfs subvolume create /btrfs_tmp/home
|
||||
mkdir /btrfs_tmp/home/lillian
|
||||
chown 1000:100 /btrfs_tmp/home/lillian
|
||||
echo "unmounting btrfs temporary mount..."
|
||||
umount /btrfs_tmp
|
||||
echo "disk clear complete!"
|
||||
'';
|
||||
};
|
||||
|
||||
loader.systemd-boot.enable = false;
|
||||
initrd.systemd.enable = true;
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
supportedFilesystems = ["btrfs" "bcachefs"];
|
||||
|
||||
binfmt.emulatedSystems = ["aarch64-linux"];
|
||||
|
||||
lanzaboote = {
|
||||
enable = true;
|
||||
pkiBundle = "/var/lib/sbctl";
|
||||
};
|
||||
extraModprobeConfig = ''
|
||||
'';
|
||||
};
|
||||
# boot.lanzaboote = {
|
||||
# enable = true;
|
||||
# pkiBundle = "/etc/secureboot";
|
||||
# };
|
||||
|
||||
users.users.lillian.extraGroups = ["gamemode"];
|
||||
|
||||
home-manager = {
|
||||
extraSpecialArgs = {inherit inputs outputs;};
|
||||
users = {
|
||||
# Import your home-manager configuration
|
||||
lillian = import ../../../home-manager/hosts/GLaDOS;
|
||||
};
|
||||
};
|
||||
|
||||
networking.hostName = "GLaDOS";
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
system.stateVersion = "26.05";
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue