nord gnome dbus stuff
This commit is contained in:
parent
dfd4e54fcc
commit
1abe47b0c2
|
@ -1,3 +1,3 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
eval "$(nix print-dev-env .#nomos-rebuild)"
|
eval "$(nix print-dev-env .#nomos-rebuild)"
|
||||||
eval "$(nix print-dev-env .#nomos-rebuild)"
|
echo Entered $(hostname --fqdn)
|
||||||
|
|
4
base.nix
4
base.nix
|
@ -45,7 +45,9 @@
|
||||||
environment.shells = with pkgs; [ bash zsh ];
|
environment.shells = with pkgs; [ bash zsh ];
|
||||||
|
|
||||||
|
|
||||||
nix.settings.trusted-users = [ "root" ]; # default, but will stick around after a mergins with ./users
|
nix.settings.allowed-users = [ "*" ]; # default
|
||||||
|
#nix.settings.allowed-users = [ "@nixbld" "@builders" ]; # TODO: this
|
||||||
|
nix.settings.trusted-users = [ "root" "@wheel" ];
|
||||||
nix.settings.auto-optimise-store = true; # deduplicate with hardlinks, expensive. Alternative: nix-store --optimise
|
nix.settings.auto-optimise-store = true; # deduplicate with hardlinks, expensive. Alternative: nix-store --optimise
|
||||||
#nix.optimize.automatic = true; # periodic optimization
|
#nix.optimize.automatic = true; # periodic optimization
|
||||||
nix.gc.automatic = true;
|
nix.gc.automatic = true;
|
||||||
|
|
|
@ -102,6 +102,10 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
devShells = forAllSystems (system: { # TODO: apply my overlays?
|
devShells = forAllSystems (system: { # TODO: apply my overlays?
|
||||||
|
#default = nixpkgs.legacyPackages.${system}.mkShell {
|
||||||
|
# packages = with nixpkgs.legacyPackages.${system}; [
|
||||||
|
# ];
|
||||||
|
#};
|
||||||
nomos-rebuild = nixpkgs.legacyPackages.${system}.mkShell {
|
nomos-rebuild = nixpkgs.legacyPackages.${system}.mkShell {
|
||||||
packages = with nixpkgs.legacyPackages.${system}; [
|
packages = with nixpkgs.legacyPackages.${system}; [
|
||||||
(writeScriptBin "nixos-rebuild" ''
|
(writeScriptBin "nixos-rebuild" ''
|
||||||
|
|
|
@ -5,36 +5,32 @@
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||||
|
|
||||||
|
services.xserver.displayManager.autoLogin.enable = true;
|
||||||
|
services.xserver.displayManager.autoLogin.user = "pbsds";
|
||||||
|
# tmp: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
|
||||||
|
systemd.services."getty@tty1".enable = false;
|
||||||
|
systemd.services."autovt@tty1".enable = false;
|
||||||
|
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest; # amdgpu audio fix when at 4k@60fps
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
../../hardware/rocm.nix
|
||||||
|
../../hardware/opengl-intel.nix
|
||||||
|
|
||||||
../../users # home-manager
|
../../users # home-manager
|
||||||
../../users/pbsds
|
../../users/pbsds
|
||||||
|
|
||||||
../../hardware/rocm.nix
|
../../profiles/desktop/gnome # with gdm
|
||||||
../../hardware/opengl-intel.nix
|
../../profiles/desktop/sound/pulseaudio.nix
|
||||||
|
#../../profiles/desktop/sound/pipewire.nix
|
||||||
|
#../../profiles/desktop/sound/alsa.nix
|
||||||
../../profiles/graphical/gnome # with gdm
|
|
||||||
../../profiles/graphical/pipewire
|
|
||||||
|
|
||||||
../../profiles/nfs/reidun.nix
|
../../profiles/nfs/reidun.nix
|
||||||
|
|
||||||
/** /
|
|
||||||
../../profiles/web
|
|
||||||
../../profiles/web/index
|
|
||||||
../../profiles/web/docs
|
|
||||||
../../profiles/web/docs/pdoc.nix
|
|
||||||
../../profiles/web/docs/python-docs.nix
|
|
||||||
../../profiles/web/docs/nixpkgs.nix
|
|
||||||
../../profiles/web/docs/linux-docs.nix
|
|
||||||
../../profiles/web/docs/yagcd.nix
|
|
||||||
/**/
|
|
||||||
|
|
||||||
#../../profiles/domeneshop-dyndns # TODO: olavtr is hardcoded...
|
|
||||||
#../../profiles/code-remote
|
|
||||||
#../../profiles/remote-builders #
|
#../../profiles/remote-builders #
|
||||||
#../../profiles/autossh-reverse-tunnels
|
#../../profiles/autossh-reverse-tunnels
|
||||||
|
#../../profiles/domeneshop-dyndns # handled by noximilien
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
@ -186,11 +182,10 @@
|
||||||
dejavu_fonts
|
dejavu_fonts
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
# services.xserver.libinput.enable = true;
|
# services.xserver.libinput.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It's perfectly fine and recommended to leave
|
# on your system were taken. It's perfectly fine and recommended to leave
|
||||||
|
|
|
@ -75,6 +75,7 @@
|
||||||
../../profiles/autossh-reverse-tunnels
|
../../profiles/autossh-reverse-tunnels
|
||||||
#../../profiles/xrdp
|
#../../profiles/xrdp
|
||||||
];
|
];
|
||||||
|
services.domeneshop-updater.target = "olavtr.pbsds.net";
|
||||||
|
|
||||||
# TODO: remove? Move to where relevant=
|
# TODO: remove? Move to where relevant=
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
services.xserver.displayManager.gdm.enable = true;
|
services.xserver.displayManager.gdm.enable = true;
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
sound.enable = true; # alsa sound?
|
||||||
|
#sound.mediaKeys.enable = true # only enable if headless
|
||||||
|
|
||||||
|
security.rtkit.enable = true; # optional
|
||||||
|
}
|
|
@ -1,7 +1,8 @@
|
||||||
{
|
{
|
||||||
sound.enable = true;
|
hardware.pulseaudio.enable = false; # gnome defaults it to true
|
||||||
hardware.pulseaudio.enable = false;
|
|
||||||
security.rtkit.enable = true;
|
#sound.enable = true # alsa? likely conflicts with pipewire
|
||||||
|
#sound.mediaKeys.enable = true # alsa? only enable if headless
|
||||||
services.pipewire.enable = true;
|
services.pipewire.enable = true;
|
||||||
services.pipewire.alsa.enable = true;
|
services.pipewire.alsa.enable = true;
|
||||||
services.pipewire.alsa.support32Bit = true;
|
services.pipewire.alsa.support32Bit = true;
|
||||||
|
@ -10,4 +11,6 @@
|
||||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||||
# no need to redefine it in your config for now)
|
# no need to redefine it in your config for now)
|
||||||
#services.pipewire.media-session.enable = true;
|
#services.pipewire.media-session.enable = true;
|
||||||
|
|
||||||
|
security.rtkit.enable = true; # optional
|
||||||
}
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
sound.enable = true; # alsa, needed?
|
||||||
|
#sound.mediaKeys.enable = true # only enable if headless
|
||||||
|
hardware.pulseaudio.enable = true;
|
||||||
|
hardware.pulseaudio.package = pkgs.pulseaudioFull; # optional
|
||||||
|
#hardware.pulseaudio.support32Bit = true;
|
||||||
|
nixpkgs.config.pulseaudio = true;
|
||||||
|
|
||||||
|
security.rtkit.enable = true; # optional
|
||||||
|
}
|
|
@ -1,40 +1,55 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.services.domeneshop-updater;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
# auto domain update
|
# auto domain update
|
||||||
|
|
||||||
systemd.services.domeneshop-updater = {
|
options = with lib; {
|
||||||
description = "domene.shop domain updater";
|
services.domeneshop-updater.target = mkOption {
|
||||||
after = [ "network-online.target" ]; # TODO: multi-user ?
|
type = types.string;
|
||||||
wants = [ "network-online.target" ]; # TODO: multi-user ?
|
#default = config.networking.fqdn;
|
||||||
serviceConfig = let
|
|
||||||
prog = pkgs.writeShellApplication {
|
|
||||||
name = "domeneshop-dyndns-updater.sh";
|
|
||||||
runtimeInputs = with pkgs; [ curl yq ];
|
|
||||||
text = ''
|
|
||||||
test -s /var/lib/secrets/domeneshop.toml || {
|
|
||||||
>&2 echo "ERROR: /var/lib/secrets/domeneshop.toml not found!"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
DOMENESHOP_TOKEN="$( tomlq </var/lib/secrets/domeneshop.toml .secrets.DOMENESHOP_TOKEN --raw-output)"
|
|
||||||
DOMENESHOP_SECRET="$(tomlq </var/lib/secrets/domeneshop.toml .secrets.DOMENESHOP_SECRET --raw-output)"
|
|
||||||
curl https://"$DOMENESHOP_TOKEN":"$DOMENESHOP_SECRET"@api.domeneshop.no/v0/dyndns/update?hostname=olavtr.pbsds.net
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
User = "domeneshop";
|
|
||||||
Group = "domeneshop";
|
|
||||||
DynamicUser = true;
|
|
||||||
ExecStart = "${prog}/bin/domeneshop-dyndns-updater.sh";
|
|
||||||
PrivateTmp = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
systemd.timers.domeneshop-updater = let interval = "5h"; in {
|
|
||||||
description = "Update domene.shop every ${interval}";
|
config = {
|
||||||
wantedBy = [ "timers.target" ];
|
|
||||||
timerConfig = {
|
systemd.services.domeneshop-updater = {
|
||||||
OnBootSec = "5m";
|
description = "domene.shop dyndns domain updater";
|
||||||
OnUnitInactiveSec = interval;
|
wantedBy = [ "multi-user.target" ];
|
||||||
Unit = "domeneshop-updater.service";
|
after = [ "network-online.target" ];
|
||||||
|
wants = [ "network-online.target" ];
|
||||||
|
serviceConfig = let
|
||||||
|
prog = pkgs.writeShellApplication {
|
||||||
|
name = "domeneshop-dyndns-updater.sh";
|
||||||
|
runtimeInputs = with pkgs; [ curl yq ];
|
||||||
|
text = ''
|
||||||
|
test -s /var/lib/secrets/domeneshop.toml || {
|
||||||
|
>&2 echo "ERROR: /var/lib/secrets/domeneshop.toml not found!"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
DOMENESHOP_TOKEN="$( tomlq </var/lib/secrets/domeneshop.toml .secrets.DOMENESHOP_TOKEN --raw-output)"
|
||||||
|
DOMENESHOP_SECRET="$(tomlq </var/lib/secrets/domeneshop.toml .secrets.DOMENESHOP_SECRET --raw-output)"
|
||||||
|
curl https://"$DOMENESHOP_TOKEN":"$DOMENESHOP_SECRET"@api.domeneshop.no/v0/dyndns/update?hostname=${cfg.target}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
User = "domeneshop";
|
||||||
|
Group = "domeneshop";
|
||||||
|
DynamicUser = true;
|
||||||
|
ExecStart = "${prog}/bin/domeneshop-dyndns-updater.sh";
|
||||||
|
PrivateTmp = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
systemd.timers.domeneshop-updater = let interval = "2h"; in {
|
||||||
|
description = "Update domene.shop every ${interval}";
|
||||||
|
wantedBy = [ "timers.target" ];
|
||||||
|
timerConfig = {
|
||||||
|
OnBootSec = "5m";
|
||||||
|
OnUnitInactiveSec = interval;
|
||||||
|
Unit = "domeneshop-updater.service";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,12 +9,24 @@ let
|
||||||
# find 'publicKey' with `ssh-keyscan`
|
# find 'publicKey' with `ssh-keyscan`
|
||||||
|
|
||||||
remotes = [
|
remotes = [
|
||||||
|
/** /
|
||||||
|
{
|
||||||
|
systems = [ "x86_64-linux" "wasm32-wasi" "wasm64-wasi" "x86_64-windows" "aarch64-linux" "riscv64-linux" ];
|
||||||
|
hostName = "nord.pbsds.net"; # TODO: port 24
|
||||||
|
sshUser = "pbsds";
|
||||||
|
maxJobs = 2; # 4 cores
|
||||||
|
#maxJobs = 1; # at least for big-parallel
|
||||||
|
speedFactor = 2;
|
||||||
|
supportedFeatures = [ "kvm" "big-parallel" "nixos-test" ];
|
||||||
|
#mandatoryFeatures = [ ];
|
||||||
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIBSdIUtUfAxnVbPDmDDFdP2S3Wd3+CC8IfZAANJ76oh";
|
||||||
|
}
|
||||||
/**/
|
/**/
|
||||||
{
|
{
|
||||||
systems = [ "x86_64-linux" "wasm32-wasi" "wasm64-wasi" "x86_64-windows" "aarch64-linux" "riscv64-linux" ];
|
systems = [ "x86_64-linux" "wasm32-wasi" "wasm64-wasi" "x86_64-windows" "aarch64-linux" "riscv64-linux" ];
|
||||||
hostName = "bolle.pbsds.net";
|
hostName = "bolle.pbsds.net";
|
||||||
sshUser = "pbsds";
|
sshUser = "pbsds";
|
||||||
maxJobs = 16;
|
maxJobs = 12; # 12 cores
|
||||||
#maxJobs = 1; # at least for big-parallel
|
#maxJobs = 1; # at least for big-parallel
|
||||||
speedFactor = 2;
|
speedFactor = 2;
|
||||||
supportedFeatures = [ "kvm" "big-parallel" "nixos-test" ];
|
supportedFeatures = [ "kvm" "big-parallel" "nixos-test" ];
|
||||||
|
@ -27,9 +39,9 @@ let
|
||||||
/**/
|
/**/
|
||||||
{
|
{
|
||||||
systems = [ "x86_64-linux" "wasm32-wasi" "wasm64-wasi" "x86_64-windows" "aarch64-linux" "riscv64-linux" ];
|
systems = [ "x86_64-linux" "wasm32-wasi" "wasm64-wasi" "x86_64-windows" "aarch64-linux" "riscv64-linux" ];
|
||||||
hostName = "noximilien.pbsds.net";
|
hostName = "noximilien.pbsds.net"; # TODO: port 23
|
||||||
sshUser = "pbsds";
|
sshUser = "pbsds";
|
||||||
maxJobs = 4;
|
maxJobs = 4; # 8 cores
|
||||||
#maxJobs = 1; # at least for big-parallel
|
#maxJobs = 1; # at least for big-parallel
|
||||||
speedFactor = 1;
|
speedFactor = 1;
|
||||||
supportedFeatures = [ "kvm" "big-parallel" "nixos-test" ];
|
supportedFeatures = [ "kvm" "big-parallel" "nixos-test" ];
|
||||||
|
@ -41,7 +53,7 @@ let
|
||||||
systems = ["x86_64-linux"];
|
systems = ["x86_64-linux"];
|
||||||
hostName = "rocm.pbsds.net";
|
hostName = "rocm.pbsds.net";
|
||||||
sshUser = "pbsds";
|
sshUser = "pbsds";
|
||||||
maxJobs = 8;
|
maxJobs = 8; # 16 cores
|
||||||
#maxJobs = 4;
|
#maxJobs = 4;
|
||||||
#maxJobs = 1; # at least for big-parallel
|
#maxJobs = 1; # at least for big-parallel
|
||||||
speedFactor = 2;
|
speedFactor = 2;
|
||||||
|
@ -57,7 +69,7 @@ let
|
||||||
systems = ["x86_64-linux"];
|
systems = ["x86_64-linux"];
|
||||||
hostName = "isvegg.pvv.ntnu.no";
|
hostName = "isvegg.pvv.ntnu.no";
|
||||||
sshUser = "pederbs";
|
sshUser = "pederbs";
|
||||||
maxJobs = 2;
|
maxJobs = 2; # 4 cores
|
||||||
speedFactor = 0;
|
speedFactor = 0;
|
||||||
publicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGurF7rdnrDP/VgIK2Tx38of+bX/QGCGL+alrWnZ1Ca5llGneMulUt1RB9xZzNLHiaWIE+HOP0i4spEaeZhilfU=";
|
publicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGurF7rdnrDP/VgIK2Tx38of+bX/QGCGL+alrWnZ1Ca5llGneMulUt1RB9xZzNLHiaWIE+HOP0i4spEaeZhilfU=";
|
||||||
}
|
}
|
||||||
|
@ -65,7 +77,7 @@ let
|
||||||
systems = ["x86_64-linux"];
|
systems = ["x86_64-linux"];
|
||||||
hostName = "eirin.pvv.ntnu.no";
|
hostName = "eirin.pvv.ntnu.no";
|
||||||
sshUser = "pederbs";
|
sshUser = "pederbs";
|
||||||
maxJobs = 2;
|
maxJobs = 2; # 8 cores
|
||||||
speedFactor = 0;
|
speedFactor = 0;
|
||||||
publicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBILGULKEzYe5kPorM0rWATv10qq6debfCuYUYqw3HWZm4Y5Pi7mVKcf8lKFNPc1DxT/dStfxxtHj/2fbezaxElk=";
|
publicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBILGULKEzYe5kPorM0rWATv10qq6debfCuYUYqw3HWZm4Y5Pi7mVKcf8lKFNPc1DxT/dStfxxtHj/2fbezaxElk=";
|
||||||
}
|
}
|
||||||
|
@ -73,7 +85,7 @@ let
|
||||||
systems = ["x86_64-linux"];
|
systems = ["x86_64-linux"];
|
||||||
hostName = "demiurgen.pvv.ntnu.no";
|
hostName = "demiurgen.pvv.ntnu.no";
|
||||||
sshUser = "pederbs";
|
sshUser = "pederbs";
|
||||||
maxJobs = 2;
|
maxJobs = 2; # 8 cores
|
||||||
speedFactor = 0;
|
speedFactor = 0;
|
||||||
publicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKw92q3eB5HZbKJN3p+80MtirqcXPu01USE9LnoGYJuDvko1udjIy4UR0wAwELqgs+r7mJyuQPeXmOZKwjHP6tM=";
|
publicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKw92q3eB5HZbKJN3p+80MtirqcXPu01USE9LnoGYJuDvko1udjIy4UR0wAwELqgs+r7mJyuQPeXmOZKwjHP6tM=";
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,12 +20,24 @@
|
||||||
home-manager.users.pbsds = if config.services.xserver.desktopManager.gnome.enable
|
home-manager.users.pbsds = if config.services.xserver.desktopManager.gnome.enable
|
||||||
then import ./home/gnome.nix
|
then import ./home/gnome.nix
|
||||||
else import ./home;
|
else import ./home;
|
||||||
|
|
||||||
users.groups.pbsds.gid = 1001; # TODO: remove this, add a uid map to NFS instead
|
users.groups.pbsds.gid = 1001; # TODO: remove this, add a uid map to NFS instead
|
||||||
users.users.pbsds = {
|
users.users.pbsds = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
uid = 1001; # TODO: uid mapping be done at nfs-mount level? That way we can enforce
|
uid = 1001; # TODO: uid mapping be done at nfs-mount level? That way we can enforce
|
||||||
description = "pbsds";
|
description = "pbsds";
|
||||||
extraGroups = [ "pbsds" "networkmanager" "wheel" "nixbld" ]; # TODO: NAS stuff
|
extraGroups = [
|
||||||
|
"pbsds"
|
||||||
|
"networkmanager"
|
||||||
|
"audio"
|
||||||
|
"sound"
|
||||||
|
"video"
|
||||||
|
"input"
|
||||||
|
"tty"
|
||||||
|
"wheel"
|
||||||
|
"nixbld"
|
||||||
|
# TODO: NAS stuff
|
||||||
|
];
|
||||||
initialHashedPassword = "$6$yNgxTHcP1UYkNwuZ$1sBehnKgPjVnDe0tSV8kyfynWpfjDzuohZX6SoTrMnYFa3/aiMOtI6JppYevl.M6qYhBIT0XBvL6TqSSFWn8B/";
|
initialHashedPassword = "$6$yNgxTHcP1UYkNwuZ$1sBehnKgPjVnDe0tSV8kyfynWpfjDzuohZX6SoTrMnYFa3/aiMOtI6JppYevl.M6qYhBIT0XBvL6TqSSFWn8B/";
|
||||||
|
|
||||||
# TODO: fetch from github?
|
# TODO: fetch from github?
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
[general]
|
||||||
|
fontname=Monospace 14
|
||||||
|
selchars=-A-Za-z0-9,./?%&#:_
|
||||||
|
scrollback=5000
|
||||||
|
bgcolor=rgb(0,0,0)
|
||||||
|
fgcolor=rgb(211,215,207)
|
||||||
|
palette_color_0=rgb(0,0,0)
|
||||||
|
palette_color_1=rgb(205,0,0)
|
||||||
|
palette_color_2=rgb(78,154,6)
|
||||||
|
palette_color_3=rgb(196,160,0)
|
||||||
|
palette_color_4=rgb(52,101,164)
|
||||||
|
palette_color_5=rgb(117,80,123)
|
||||||
|
palette_color_6=rgb(6,152,154)
|
||||||
|
palette_color_7=rgb(211,215,207)
|
||||||
|
palette_color_8=rgb(85,87,83)
|
||||||
|
palette_color_9=rgb(239,41,41)
|
||||||
|
palette_color_10=rgb(138,226,52)
|
||||||
|
palette_color_11=rgb(252,233,79)
|
||||||
|
palette_color_12=rgb(114,159,207)
|
||||||
|
palette_color_13=rgb(173,127,168)
|
||||||
|
palette_color_14=rgb(52,226,226)
|
||||||
|
palette_color_15=rgb(238,238,236)
|
||||||
|
color_preset=Tango
|
||||||
|
disallowbold=false
|
||||||
|
cursorblinks=false
|
||||||
|
cursorunderline=false
|
||||||
|
audiblebell=true
|
||||||
|
tabpos=top
|
||||||
|
geometry_columns=80
|
||||||
|
geometry_rows=24
|
||||||
|
hidescrollbar=true
|
||||||
|
hidemenubar=true
|
||||||
|
hideclosebutton=false
|
||||||
|
hidepointer=false
|
||||||
|
disablef10=false
|
||||||
|
disablealt=false
|
||||||
|
disableconfirm=false
|
||||||
|
|
||||||
|
boldbright=false
|
||||||
|
visualbell=false
|
||||||
|
|
||||||
|
[shortcut]
|
||||||
|
new_window_accel=<Primary><Shift>n
|
||||||
|
new_tab_accel=<Primary><Shift>t
|
||||||
|
close_tab_accel=<Primary><Shift>w
|
||||||
|
close_window_accel=<Primary><Shift>q
|
||||||
|
copy_accel=<Primary><Shift>c
|
||||||
|
paste_accel=<Primary><Shift>v
|
||||||
|
name_tab_accel=<Primary><Shift>i
|
||||||
|
previous_tab_accel=<Primary>Page_Up
|
||||||
|
next_tab_accel=<Primary>Page_Down
|
||||||
|
move_tab_left_accel=<Primary><Shift>Page_Up
|
||||||
|
move_tab_right_accel=<Primary><Shift>Page_Down
|
||||||
|
zoom_in_accel=<Primary>plus
|
||||||
|
zoom_out_accel=<Primary>minus
|
||||||
|
zoom_reset_accel=<Primary>0
|
|
@ -0,0 +1,36 @@
|
||||||
|
#1/usr/bin/env python
|
||||||
|
import configparser
|
||||||
|
import os
|
||||||
|
import urllib.parse
|
||||||
|
import shutil
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
c = configparser.RawConfigParser()
|
||||||
|
c.read(sys.argv[1])
|
||||||
|
|
||||||
|
def input(query):
|
||||||
|
if shutil.which("zenity"):
|
||||||
|
return subprocess.run(["zenity", "--forms", "--add-entry=" + query], capture_output=True).stdout.decode().strip()
|
||||||
|
#if shutil.which("xdialog"): TODO
|
||||||
|
assert 0
|
||||||
|
|
||||||
|
try:
|
||||||
|
url=c["InternetShortcut"]["URL"]
|
||||||
|
|
||||||
|
if not url.strip():
|
||||||
|
c["InternetShortcut"]["URL"] = input("Set URL")
|
||||||
|
with open(sys.argv[1], "w") as f:
|
||||||
|
c.write(f, space_around_delimiters=False)
|
||||||
|
exit(0)
|
||||||
|
|
||||||
|
if urllib.parse.urlparse(url).scheme not in ["http","https","ftp","ssh","zotero"]:
|
||||||
|
raise Exception("Invalid scheme in URI")
|
||||||
|
|
||||||
|
os.execv(shutil.which("xdg-open"), ["xdg-open", url])
|
||||||
|
assert 0
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"{e.__class__.__name__}: {e}",file=sys.stderr)
|
||||||
|
|
||||||
|
exit(3)
|
|
@ -0,0 +1,102 @@
|
||||||
|
#!/usb/bin/env python3
|
||||||
|
|
||||||
|
#run with:
|
||||||
|
#gnome-terminal --hide-menubar --window-with-profile=manjaro -x python -i $HOME/.local/opt/python-interactive-imports.py
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
from numpy import gcd, array, arange, linspace, meshgrid
|
||||||
|
from numpy import cos, pi, sin, exp, log, log10, sqrt
|
||||||
|
#from math import cos, pi, sin, exp, log, log10, sqrt, acos, asin, atan
|
||||||
|
from math import acos, asin, atan, factorial
|
||||||
|
from statistics import *
|
||||||
|
from pprint import pprint
|
||||||
|
from dis import dis
|
||||||
|
import os, sys
|
||||||
|
import functools
|
||||||
|
import typing
|
||||||
|
from functools import reduce
|
||||||
|
from pathlib import Path
|
||||||
|
from objexplore import explore
|
||||||
|
|
||||||
|
p = pprint
|
||||||
|
|
||||||
|
def plot(x, *args, label=[]):
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
for i in args:
|
||||||
|
plt.plot(x[:len(i)], i)
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
|
||||||
|
def hist(x, bins=20):
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
plt.hist(x, bins)
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
def scatter(x, *args):
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
for i in args:
|
||||||
|
plt.plot(x[:len(i)], i, ".")
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
def imshow(image, cmap="gray"):
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
plt.imshow(image.astype(np.float32), cmap=cmap)
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
def image(filepath=None, gray=False):
|
||||||
|
if not filepath:
|
||||||
|
import cv2
|
||||||
|
cam = cv2.VideoCapture(0)
|
||||||
|
s, im = cam.read() # captures image
|
||||||
|
cv2.destroyAllWindows()
|
||||||
|
im = im.astype(np.float64) / 256
|
||||||
|
if not gray:
|
||||||
|
return np.dstack((
|
||||||
|
im[:,:,2],
|
||||||
|
im[:,:,1],
|
||||||
|
im[:,:,0],
|
||||||
|
))
|
||||||
|
else:
|
||||||
|
return ( im[:,:,2] + im[:,:,1] + im[:,:,0]) / 3
|
||||||
|
else:
|
||||||
|
import matplotlib.image as mpimg
|
||||||
|
img=mpimg.imread('image_name.png')
|
||||||
|
|
||||||
|
|
||||||
|
def rad(degrees):
|
||||||
|
return degrees * pi / 180
|
||||||
|
|
||||||
|
def deg(radians):
|
||||||
|
return radians / pi * 180
|
||||||
|
|
||||||
|
def clip(data):
|
||||||
|
"xclip -sel clip"
|
||||||
|
import subprocess
|
||||||
|
p = subprocess.Popen(("xclip", "-sel", "clip"), stdin=subprocess.PIPE)
|
||||||
|
p.communicate(str(data).encode("utf-8"))
|
||||||
|
|
||||||
|
def prod(args):
|
||||||
|
return functools.reduce(lambda x, y: x*y, args)
|
||||||
|
|
||||||
|
def add(*args):
|
||||||
|
return sum(args)
|
||||||
|
|
||||||
|
def mul(*args):
|
||||||
|
return prod(args)
|
||||||
|
|
||||||
|
|
||||||
|
def history(n=None):
|
||||||
|
import readline
|
||||||
|
return "\n".join([
|
||||||
|
readline.get_history_item(i + 1)
|
||||||
|
for i in range(readline.get_current_history_length())
|
||||||
|
][-(n+1) if n is not None else 0:-1])
|
||||||
|
|
||||||
|
|
||||||
|
def integral(data, initial=0, step=None):
|
||||||
|
if step is None:
|
||||||
|
step = (data[-1] - data[0]) / len(data)
|
||||||
|
out = [initial]
|
||||||
|
for i in data:
|
||||||
|
out.append(out[-1] + i*step)
|
||||||
|
return out[1:]
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usb/bin/env python3
|
||||||
|
|
||||||
|
#run with:
|
||||||
|
#gnome-terminal --hide-menubar --window-with-profile=manjaro -x python -i $HOME/.local/opt/sympy-interactive-imports.py
|
||||||
|
|
||||||
|
from sympy import *
|
||||||
|
x, y, z, t = symbols('x y z t')
|
||||||
|
k, m, n = symbols('k m n', integer=True)
|
||||||
|
f, g, h = symbols('f g h', cls=Function)
|
Binary file not shown.
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
After Width: | Height: | Size: 1.8 MiB |
|
@ -3,75 +3,10 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./default.nix
|
./default.nix
|
||||||
#./profiles/gnome.nix
|
./profiles/gnome
|
||||||
];
|
];
|
||||||
# TODO: dbus
|
|
||||||
|
|
||||||
dconf.settings = {
|
|
||||||
"org/gnome/shell" = {
|
|
||||||
disable-user-extensions = false;
|
|
||||||
enabled-extensions = [
|
|
||||||
"just-perfection-desktop@just-perfection"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/interface" = {
|
|
||||||
color-scheme = "prefer-dark";
|
|
||||||
enable-hot-corners = false;
|
|
||||||
clock-show-weekday = true;
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/privacy" = {
|
|
||||||
report-technical-problems = "false";
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/wm/preferences" = {
|
|
||||||
button-layout = ":minimize,close";
|
|
||||||
};
|
|
||||||
"org/gnome/settings-daemon/plugins/power" = {
|
|
||||||
sleep-interactive-ac-type = "nothing";
|
|
||||||
};
|
|
||||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
|
||||||
custom-keybindings = [
|
|
||||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
|
|
||||||
binding = "<Super>e";
|
|
||||||
command = "nautilus";
|
|
||||||
name = "open-file-browser";
|
|
||||||
};
|
|
||||||
"org/gnome/shell/extensions/just-perfection" = {
|
|
||||||
theme = true;
|
|
||||||
activities-button = false;
|
|
||||||
};
|
|
||||||
/** /
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell" = {
|
|
||||||
brightness = 0.9;
|
|
||||||
};
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell/panel" = {
|
|
||||||
customize = true;
|
|
||||||
sigma = 0;
|
|
||||||
};
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell/overview" = { # Temporary = D2D Bug
|
|
||||||
customize = true;
|
|
||||||
sigma = 0;
|
|
||||||
};
|
|
||||||
/**/
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
gnome.gnome-tweaks
|
|
||||||
lxterminal
|
|
||||||
|
|
||||||
gnomeExtensions.just-perfection
|
|
||||||
/** /
|
|
||||||
gnomeExtensions.blur-my-shell
|
|
||||||
gnomeExtensions.tray-icons-reloaded
|
|
||||||
gnomeExtensions.removable-drive-menu
|
|
||||||
gnomeExtensions.battery-indicator-upower
|
|
||||||
gnomeExtensions.workspace-indicator-2
|
|
||||||
gnomeExtensions.bluetooth-quick-connect
|
|
||||||
gnomeExtensions.forge
|
|
||||||
/**/
|
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,137 @@
|
||||||
|
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
with lib.hm.gvariant;
|
||||||
|
|
||||||
|
{
|
||||||
|
dconf.settings = {
|
||||||
|
"org/gnome/desktop/wm/keybindings" = {
|
||||||
|
close = [ "<Alt>F4" ];
|
||||||
|
maximize = [ "<Super>Up" ];
|
||||||
|
move-to-monitor-down = [];
|
||||||
|
move-to-monitor-up = [];
|
||||||
|
move-to-workspace-1 = [];
|
||||||
|
move-to-workspace-down = [ "<Super><Shift>Page_Down" "<Control><Shift><Alt>Down" ];
|
||||||
|
move-to-workspace-last = [];
|
||||||
|
move-to-workspace-left = [ "<Super><Shift><Alt>Left" "<Control><Shift><Alt>Left" ];
|
||||||
|
move-to-workspace-right = [ "<Super><Shift><Alt>Right" "<Control><Shift><Alt>Right" ];
|
||||||
|
move-to-workspace-up = [ "<Super><Shift>Page_Up" "<Control><Shift><Alt>Up" ];
|
||||||
|
panel-main-menu = [ "<Alt>F1" ];
|
||||||
|
switch-applications = [];
|
||||||
|
switch-applications-backward = [];
|
||||||
|
switch-to-workspace-1 = [];
|
||||||
|
switch-to-workspace-down = [ "<Super>Page_Down" "<Control><Alt>Down" ];
|
||||||
|
switch-to-workspace-last = [];
|
||||||
|
switch-to-workspace-left = [ "<Super><Alt>Left" "<Control><Alt>Left" ];
|
||||||
|
switch-to-workspace-right = [ "<Super><Alt>Right" "<Control><Alt>Right" ];
|
||||||
|
switch-to-workspace-up = [ "<Super>Page_Up" "<Control><Alt>Up" ];
|
||||||
|
switch-windows = [ "<Alt>Tab" ];
|
||||||
|
switch-windows-backward = [ "<Shift><Alt>Tab" ];
|
||||||
|
unmaximize = [ "<Super>Down" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/mutter/keybindings" = {
|
||||||
|
switch-monitor = [ "XF86Display" ];
|
||||||
|
toggle-tiled-left = [ "<Super>Left" ];
|
||||||
|
toggle-tiled-right = [ "<Super>Right" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/keybindings" = {
|
||||||
|
screenshot = [ "Print" ];
|
||||||
|
show-screenshot-ui = [ "<Control>Print" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||||
|
area-screenshot = [ "<Primary><Shift>Print" ];
|
||||||
|
area-screenshot-clip = [ "<Primary>Print" ];
|
||||||
|
custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom8/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom9/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom10/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom12/" ];
|
||||||
|
home = [ "<Super>e" ];
|
||||||
|
magnifier = [ "<Super>Escape" ];
|
||||||
|
magnifier-zoom-in = [ "<Super>plus" ];
|
||||||
|
magnifier-zoom-out = [ "<Super>minus" ];
|
||||||
|
next = [ "<Super>aring" ];
|
||||||
|
play = [ "<Alt>p" ];
|
||||||
|
previous = [ "<Super>o" ];
|
||||||
|
screenshot = [ "<Shift>Print" ];
|
||||||
|
screenshot-clip = [ "Print" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
|
||||||
|
binding = "<Primary><Alt>t";
|
||||||
|
command = "lxterminal";
|
||||||
|
name = "Open Terminal";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
|
||||||
|
binding = "";
|
||||||
|
command = "sh -c \"$HOME/.local/opt/center-window.sh\"";
|
||||||
|
name = "Window to Center";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom10" = {
|
||||||
|
binding = "";
|
||||||
|
command = "bash -c 'dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous'";
|
||||||
|
name = "spotify prev";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom11" = {
|
||||||
|
binding = "";
|
||||||
|
command = "sh -c \"$HOME/.local/opt/toggle_sticky.sh\"";
|
||||||
|
name = "Toggle stickyness";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom12" = {
|
||||||
|
binding = "<Primary><Shift>space";
|
||||||
|
command = "sh -c \"lxterminal -e python3 -i $HOME/.local/opt/sympy-interactive-imports.py\"";
|
||||||
|
name = "Open SymPy terminal";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = {
|
||||||
|
binding = "";
|
||||||
|
command = "sh -c \"$HOME/.local/opt/left-window.sh\"";
|
||||||
|
name = "Window to Left";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3" = {
|
||||||
|
binding = "";
|
||||||
|
command = "sh -c \"$HOME/.local/opt/right-window.sh\"";
|
||||||
|
name = "Window to Right";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4" = {
|
||||||
|
binding = "";
|
||||||
|
command = "sh -c \"$HOME/.local/opt/center-small-window.sh\"";
|
||||||
|
name = "Window to Center Small";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5" = {
|
||||||
|
binding = "<Primary><Alt>space";
|
||||||
|
command = "sh -c \"lxterminal -e `command -v ptpython || echo python3` -i $HOME/.local/opt/python-interactive-imports.py\"";
|
||||||
|
name = "Open Python Terminal";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6" = {
|
||||||
|
command = "sh -c \"$HOME/.local/opt/toggle_decoration.sh\"";
|
||||||
|
name = "Toggle window decorations";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7" = {
|
||||||
|
binding = "";
|
||||||
|
command = "sh -c \"$HOME/.local/opt/toggle_theme.sh\"";
|
||||||
|
name = "Toggle gtk theme";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom8" = {
|
||||||
|
binding = "";
|
||||||
|
command = "bash -c 'dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause'";
|
||||||
|
name = "spotify play";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom9" = {
|
||||||
|
binding = "";
|
||||||
|
command = "bash -c 'dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.next'";
|
||||||
|
name = "spotify next";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
with lib.hm.gvariant;
|
||||||
|
|
||||||
|
{
|
||||||
|
dconf.settings = {
|
||||||
|
"org/gnome/shell/extensions/vertical-overview" = {
|
||||||
|
override-dash = false;
|
||||||
|
scaling-workspace-background = false;
|
||||||
|
static-background = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/big-avatar" = {
|
||||||
|
fontsize = 16;
|
||||||
|
horizontalmode = true;
|
||||||
|
picturesize = 48;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/gtile" = {
|
||||||
|
autotile-1 = [ "" ];
|
||||||
|
autotile-10 = [ "" ];
|
||||||
|
autotile-2 = [ "" ];
|
||||||
|
autotile-3 = [ "" ];
|
||||||
|
autotile-4 = [ "" ];
|
||||||
|
autotile-5 = [ "" ];
|
||||||
|
autotile-6 = [ "" ];
|
||||||
|
autotile-7 = [ "" ];
|
||||||
|
autotile-8 = [ "" ];
|
||||||
|
autotile-9 = [ "" ];
|
||||||
|
autotile-main = [ "" ];
|
||||||
|
global-presets = false;
|
||||||
|
grid-sizes = "8x5";
|
||||||
|
insets-primary-bottom = 3;
|
||||||
|
insets-primary-left = 3;
|
||||||
|
insets-primary-right = 3;
|
||||||
|
insets-primary-top = 3;
|
||||||
|
insets-secondary-bottom = 0;
|
||||||
|
insets-secondary-left = 0;
|
||||||
|
insets-secondary-right = 0;
|
||||||
|
insets-secondary-top = 0;
|
||||||
|
max-timeout = 1600;
|
||||||
|
move-down-vi = [ "" ];
|
||||||
|
move-left-vi = [ "" ];
|
||||||
|
move-right-vi = [ "" ];
|
||||||
|
move-up-vi = [ "" ];
|
||||||
|
moveresize-enabled = false;
|
||||||
|
preset-resize-1 = [ "" ];
|
||||||
|
preset-resize-11 = [ "" ];
|
||||||
|
preset-resize-12 = [ "" ];
|
||||||
|
preset-resize-13 = [ "" ];
|
||||||
|
preset-resize-14 = [ "" ];
|
||||||
|
preset-resize-15 = [ "" ];
|
||||||
|
preset-resize-16 = [ "" ];
|
||||||
|
preset-resize-17 = [ "" ];
|
||||||
|
preset-resize-18 = [ "" ];
|
||||||
|
preset-resize-19 = [ "" ];
|
||||||
|
preset-resize-2 = [ "" ];
|
||||||
|
preset-resize-21 = [ "" ];
|
||||||
|
preset-resize-22 = [ "" ];
|
||||||
|
preset-resize-23 = [ "" ];
|
||||||
|
preset-resize-24 = [ "" ];
|
||||||
|
preset-resize-25 = [ "" ];
|
||||||
|
preset-resize-26 = [ "" ];
|
||||||
|
preset-resize-27 = [ "" ];
|
||||||
|
preset-resize-28 = [ "" ];
|
||||||
|
preset-resize-29 = [ "" ];
|
||||||
|
preset-resize-3 = [ "" ];
|
||||||
|
preset-resize-4 = [ "" ];
|
||||||
|
preset-resize-5 = [ "" ];
|
||||||
|
preset-resize-6 = [ "" ];
|
||||||
|
preset-resize-7 = [ "" ];
|
||||||
|
preset-resize-8 = [ "" ];
|
||||||
|
preset-resize-9 = [ "" ];
|
||||||
|
resize-down-vi = [ "" ];
|
||||||
|
resize-left-vi = [ "" ];
|
||||||
|
resize-right-vi = [ "" ];
|
||||||
|
resize-up-vi = [ "" ];
|
||||||
|
resize1 = "7x2 0:2 0:2, 2:5 0:2";
|
||||||
|
show-icon = false;
|
||||||
|
snap-to-neighbors = [ "" ];
|
||||||
|
window-margin = 4;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/just-perfection" = {
|
||||||
|
activities-button = true;
|
||||||
|
app-menu = true;
|
||||||
|
dash = false;
|
||||||
|
dash-separator = true;
|
||||||
|
panel = true;
|
||||||
|
quick-settings = true;
|
||||||
|
top-panel-position = 1;
|
||||||
|
window-demands-attention-focus = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
with lib.hm.gvariant;
|
||||||
|
|
||||||
|
{
|
||||||
|
dconf.settings = {
|
||||||
|
"org/gnome/shell/extensions/user-theme" = {
|
||||||
|
name = "vimix-dark-laptop-ruby";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
clock-show-date = true;
|
||||||
|
clock-show-seconds = false;
|
||||||
|
clock-show-weekday = true;
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
cursor-theme = "Adwaita";
|
||||||
|
document-font-name = "Sans 10";
|
||||||
|
enable-animations = true;
|
||||||
|
enable-hot-corners = false;
|
||||||
|
font-antialiasing = "grayscale";
|
||||||
|
font-hinting = "slight";
|
||||||
|
font-name = "Noto Sans 10";
|
||||||
|
gtk-theme = "Colloid-Dark";
|
||||||
|
icon-theme = "Flat-Remix-Blue-Dark";
|
||||||
|
locate-pointer = false;
|
||||||
|
monospace-font-name = "Hack 11";
|
||||||
|
show-battery-percentage = true;
|
||||||
|
text-scaling-factor = 1.0;
|
||||||
|
toolkit-accessibility = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/wm/preferences" = {
|
||||||
|
action-middle-click-titlebar = "none";
|
||||||
|
auto-raise = false;
|
||||||
|
button-layout = "appmenu:minimize,maximize,close";
|
||||||
|
focus-mode = "click";
|
||||||
|
focus-new-windows = "strict";
|
||||||
|
resize-with-right-button = false;
|
||||||
|
titlebar-font = "Cantarell Bold 11";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/overrides" = {
|
||||||
|
dynamic-workspaces = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/tweaks" = {
|
||||||
|
show-extensions-notice = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/calendar" = {
|
||||||
|
show-weekdate = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/privacy" = {
|
||||||
|
disable-microphone = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
#!/usr/bin/env nix-shell
|
||||||
|
#!nix-shell -i bash -p dconf2nix sd
|
||||||
|
set -euo pipefail
|
||||||
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||||
|
|
||||||
|
dump() {
|
||||||
|
ROOT="$1"
|
||||||
|
shift
|
||||||
|
dconf dump "/$ROOT/" \
|
||||||
|
| sd '^\[([^/])' "[$ROOT/\$1" \
|
||||||
|
| sd '^\[/\]$' "[$ROOT]"
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
dump "org/gnome/desktop/wm/keybindings"
|
||||||
|
dump "org/gnome/mutter/keybindings"
|
||||||
|
dump "org/gnome/shell/keybindings"
|
||||||
|
dump "org/gnome/settings-daemon/plugins/media-keys"
|
||||||
|
} | dconf2nix > dconf-gnome-bindings.nix
|
||||||
|
|
||||||
|
{
|
||||||
|
#dump "org/gnome/shell"
|
||||||
|
dump "org/gnome/shell/extensions/vertical-overview"
|
||||||
|
dump "org/gnome/shell/extensions/big-avatar"
|
||||||
|
dump "org/gnome/shell/extensions/gtile"
|
||||||
|
dump "org/gnome/shell/extensions/just-perfection"
|
||||||
|
} | dconf2nix > dconf-gnome-extensions.nix
|
||||||
|
|
||||||
|
{
|
||||||
|
dump "org/gnome/shell/extensions/user-theme"
|
||||||
|
dump "org/gnome/desktop/interface" # features stuff already set by home-manager
|
||||||
|
dump "org/gnome/desktop/wm/preferences"
|
||||||
|
dump "org/gnome/shell/overrides"
|
||||||
|
dump "org/gnome/tweaks"
|
||||||
|
dump "org/gnome/desktop/calendar"
|
||||||
|
dump "org/gnome/desktop/privacy"
|
||||||
|
} | dconf2nix | sd --string-mode \
|
||||||
|
'"/org/gnome/desktop/interface" = {' \
|
||||||
|
'"/org/gnome/desktop/interface" = lib.mkDefault {' \
|
||||||
|
> dconf-gnome-theme.nix
|
|
@ -0,0 +1,91 @@
|
||||||
|
# Handwritten!
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
home.file.".local/opt/open-microsoft-url-files.py".source = ../../files/opt/open-microsoft-url-files.py;
|
||||||
|
home.file.".local/opt/python-interactive-imports.py".source = ../../files/opt/python-interactive-imports.py;
|
||||||
|
home.file.".local/opt/sympy-interactive-imports.py".source = ../../files/opt/sympy-interactive-imports.py;
|
||||||
|
home.file.".config/lxterminal/lxterminal.conf".source = ../../files/lxterminal.conf;
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./dconf-gnome-bindings.nix
|
||||||
|
./dconf-gnome-extensions.nix
|
||||||
|
./dconf-gnome-theme.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
lxterminal
|
||||||
|
gnome.gnome-tweaks
|
||||||
|
pkgs.vimix-gtk-themes # shell theme
|
||||||
|
gnomeExtensions.big-avatar
|
||||||
|
gnomeExtensions.bluetooth-quick-connect
|
||||||
|
gnomeExtensions.gtile
|
||||||
|
gnomeExtensions.just-perfection
|
||||||
|
gnomeExtensions.keep-awake
|
||||||
|
gnomeExtensions.middle-click-to-close-in-overview
|
||||||
|
gnomeExtensions.vertical-overview
|
||||||
|
gnomeExtensions.appindicator
|
||||||
|
gnomeExtensions.removable-drive-menu
|
||||||
|
/* TODO:
|
||||||
|
gnomeExtensions.night-light-slider
|
||||||
|
gnomeExtensions.tray-icons-reloaded
|
||||||
|
gnomeExtensions.removable-drive-menu
|
||||||
|
gnomeExtensions.battery-indicator-upower
|
||||||
|
gnomeExtensions.workspace-indicator-2
|
||||||
|
gnomeExtensions.forge
|
||||||
|
*/
|
||||||
|
];
|
||||||
|
#dump "org/gnome/settings-daemon/plugins/power"
|
||||||
|
|
||||||
|
dconf.settings = {
|
||||||
|
"org/gnome/shell" = {
|
||||||
|
disable-user-extensions = false;
|
||||||
|
# remote-quick dconf dump /org/gnome/shell/ | grep ^enabled-extensions=
|
||||||
|
enabled-extensions = [
|
||||||
|
"bluetooth-quick-connect@bjarosze.gmail.com"
|
||||||
|
"gTile@vibou"
|
||||||
|
"just-perfection-desktop@just-perfection"
|
||||||
|
"KeepAwake@jepfa.de"
|
||||||
|
"middleclickclose@paolo.tranquilli.gmail.com"
|
||||||
|
"user-theme@gnome-shell-extensions.gcampax.github.com"
|
||||||
|
"vertical-overview@RensAlthuis.github.com"
|
||||||
|
"appindicatorsupport@rgcjonas.gmail.com"
|
||||||
|
"drive-menu@gnome-shell-extensions.gcampax.github.com"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# wallpaper
|
||||||
|
"org/gnome/desktop/background" = {
|
||||||
|
color-shading-type = "solid";
|
||||||
|
picture-options = "zoom";
|
||||||
|
picture-uri = "file://${../../files/wallpaper.jpg}";
|
||||||
|
picture-uri-dark = "file://${../../files/wallpaper.jpg}";
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/screensaver" = {
|
||||||
|
idle-activation-enabled = false;
|
||||||
|
picture-uri = "file://${../../files/screensaver.jpg}";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
enable-hot-corners = false;
|
||||||
|
clock-show-weekday = true;
|
||||||
|
};
|
||||||
|
#"org/gnome/desktop/wm/preferences" = {
|
||||||
|
# button-layout = ":minimize,close";
|
||||||
|
#};
|
||||||
|
"org/gnome/desktop/peripherals/touchpad" = {
|
||||||
|
disable-while-typing = false;
|
||||||
|
natural-scroll = false;
|
||||||
|
two-finger-scrolling-enabled = true;
|
||||||
|
};
|
||||||
|
"org/gnome/nautilus/preferences" = {
|
||||||
|
confirm-trash = true;
|
||||||
|
executable-text-activation = "display";
|
||||||
|
show-create-link = true;
|
||||||
|
sort-directories-first = true;
|
||||||
|
#recursive-search = "never";
|
||||||
|
#show-image-thumbnails = "always";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
|
@ -7,8 +7,4 @@
|
||||||
gtk.theme.package = pkgs.colloid-gtk-theme;
|
gtk.theme.package = pkgs.colloid-gtk-theme;
|
||||||
gtk.iconTheme.name = "Flat-Remix-Blue-Dark";
|
gtk.iconTheme.name = "Flat-Remix-Blue-Dark";
|
||||||
gtk.iconTheme.package = pkgs.flat-remix-icon-theme;
|
gtk.iconTheme.package = pkgs.flat-remix-icon-theme;
|
||||||
dconf.settings."org/gnome/desktop/background" = {
|
|
||||||
"picture-uri" = "file:///mnt/reidun/Images/Wallpapers/1575232313831.jpg";
|
|
||||||
"picture-uri-dark" = "file:///mnt/reidun/Images/Wallpapers/1575232313831.jpg";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue