Compare commits
No commits in common. "main" and "merged" have entirely different histories.
48 changed files with 477 additions and 1443 deletions
201
nixos/flake.lock
201
nixos/flake.lock
|
@ -2,17 +2,17 @@
|
|||
"nodes": {
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
],
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713532798,
|
||||
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
|
||||
"lastModified": 1698410321,
|
||||
"narHash": "sha256-MphuSlgpmKwtJncGMohryHiK55J1n6WzVQ/OAfmfoMc=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
|
||||
"rev": "1aed986e3c81a4f6698e85a7452cbfcc4b31a36e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -22,33 +22,15 @@
|
|||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"lastModified": 1694529238,
|
||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -64,79 +46,58 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1716736833,
|
||||
"narHash": "sha256-rNObca6dm7Qs524O4st8VJH6pZ/Xe1gxl+Rx6mcWYo0=",
|
||||
"lastModified": 1699748081,
|
||||
"narHash": "sha256-MOmMapBydd7MTjhX4eeQZzKlCABWw8W6iSHSG4OeFKE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "a631666f5ec18271e86a5cde998cba68c33d9ac6",
|
||||
"rev": "04bac349d585c9df38d78e0285b780a140dc74a4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.05",
|
||||
"ref": "release-23.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-github-actions": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"openconnect-sso",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701208414,
|
||||
"narHash": "sha256-xrQ0FyhwTZK6BwKhahIkUVZhMNk21IEI1nUcWSONtpo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"rev": "93e39cc1a087d65bcf7a132e75a650c44dd2b734",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1717144377,
|
||||
"narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=",
|
||||
"lastModified": 1699596684,
|
||||
"narHash": "sha256-XSXP8zjBZJBVvpNb2WmY0eW8O2ce+sVyj1T0/iBRIvg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "805a384895c696f802a9bf5bf4720f37385df547",
|
||||
"rev": "da4024d0ead5d7820f6bd15147d3fe2a0c0cec73",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-24.05",
|
||||
"ref": "nixos-23.05",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1717265169,
|
||||
"narHash": "sha256-IITcGd6xpNoyq9SZBigCkv4+qMHSqot0RDPR4xsZ2CA=",
|
||||
"lastModified": 1699756042,
|
||||
"narHash": "sha256-bHHjQQBsEPOxLL+klYU2lYshDnnWY12SewzQ7n5ab2M=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3b1b4895b2c5f9f5544d02132896aeb9ceea77bc",
|
||||
"rev": "9502d0245983bb233da8083b55d60d96fd3c29ff",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-23.11",
|
||||
"ref": "release-23.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1716948383,
|
||||
"narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=",
|
||||
"lastModified": 1699781429,
|
||||
"narHash": "sha256-UYefjidASiLORAjIvVsUHG6WBtRhM67kTjEY4XfZOFs=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ad57eef4ef0659193044870c731987a6df5cf56b",
|
||||
"rev": "e44462d6021bfe23dfb24b775cc7c390844f773d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -145,79 +106,13 @@
|
|||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"openconnect-sso": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"utils"
|
||||
],
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"poetry2nix": "poetry2nix",
|
||||
"systems": "systems_3",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701455376,
|
||||
"narHash": "sha256-FMLrMdi6JY7ZfqV5XnNj64jnDcGKznKZLn7O6OMO3u0=",
|
||||
"owner": "ThinkChaos",
|
||||
"repo": "openconnect-sso",
|
||||
"rev": "20c0015c4264c72cc19ac272de0dc534309bd21b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ThinkChaos",
|
||||
"ref": "fix/nix-flake",
|
||||
"repo": "openconnect-sso",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"poetry2nix": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"openconnect-sso",
|
||||
"flake-utils"
|
||||
],
|
||||
"nix-github-actions": [
|
||||
"openconnect-sso",
|
||||
"nix-github-actions"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"openconnect-sso",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"openconnect-sso",
|
||||
"systems"
|
||||
],
|
||||
"treefmt-nix": [
|
||||
"openconnect-sso",
|
||||
"treefmt-nix"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701105783,
|
||||
"narHash": "sha256-5IOI0xXGbhAkUZNNcPId48V78Q+/JlW0hzlif0zxRmM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "poetry2nix",
|
||||
"rev": "0b2bff39e9bd4e6db3208e09c276ca83a063b370",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "poetry2nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"devshell": "devshell",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"flake-utils": "flake-utils",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"openconnect-sso": "openconnect-sso",
|
||||
"sops-nix": "sops-nix",
|
||||
"utils": "utils"
|
||||
}
|
||||
|
@ -230,11 +125,11 @@
|
|||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1717297459,
|
||||
"narHash": "sha256-cZC2f68w5UrJ1f+2NWGV9Gx0dEYmxwomWN2B0lx0QRA=",
|
||||
"lastModified": 1699951338,
|
||||
"narHash": "sha256-1GeczM7XfgHcYGYiYNcdwSFu3E62vmh4d7mffWZvyzE=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "ab2a43b0d21d1d37d4d5726a892f714eaeb4b075",
|
||||
"rev": "0e3a94167dcd10a47b89141f35b2ff9e04b34c46",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -273,42 +168,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_3": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"openconnect-sso",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1699786194,
|
||||
"narHash": "sha256-3h3EH1FXQkIeAuzaWB+nK0XK54uSD46pp+dMD3gAcB4=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "e82f32aa7f06bbbd56d7b12186d555223dc399d1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
|
@ -316,11 +175,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1715533576,
|
||||
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
|
||||
"lastModified": 1696331477,
|
||||
"narHash": "sha256-YkbRa/1wQWdWkVJ01JvV+75KIdM37UErqKgTf0L54Fk=",
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "flake-utils-plus",
|
||||
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||
"rev": "bfc53579db89de750b25b0c5e7af299e0c06d7d3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
description = "System configuration of my machines using flakes";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
nixpkgs.url = "nixpkgs/nixos-23.05";
|
||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||
|
||||
devshell = {
|
||||
|
@ -11,16 +11,9 @@
|
|||
};
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.05";
|
||||
url = "github:nix-community/home-manager/release-23.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
openconnect-sso = {
|
||||
url = github:ThinkChaos/openconnect-sso/fix/nix-flake;
|
||||
inputs = {
|
||||
flake-utils.follows = "utils";
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
sops-nix = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
@ -33,19 +26,19 @@
|
|||
|
||||
outputs = inputs@{
|
||||
self, nixpkgs, nixpkgs-unstable,
|
||||
devshell, flake-utils, home-manager, openconnect-sso, sops-nix, utils,
|
||||
devshell, flake-utils, home-manager, sops-nix, utils,
|
||||
... }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
|
||||
unfreePackages = pkg: builtins.elem (nixpkgs.lib.getName pkg) [
|
||||
"corefonts"
|
||||
"nvidia-settings" "nvidia-x11" "nvidia-persistenced"
|
||||
"nvidia-settings" "nvidia-x11"
|
||||
"obsidian"
|
||||
"Oracle_VM_VirtualBox_Extension_Pack"
|
||||
"spotify"
|
||||
"steam" "steam-original" "steam-run"
|
||||
"vista-fonts"
|
||||
"nvidia-persistenced" # Docker
|
||||
];
|
||||
in
|
||||
utils.lib.mkFlake {
|
||||
|
@ -57,6 +50,7 @@
|
|||
(import ./overlays/cmdtime)
|
||||
(import ./overlays/icosystem)
|
||||
(import ./overlays/letter)
|
||||
(import ./overlays/openconnect-sso)
|
||||
(import ./overlays/spotify)
|
||||
];
|
||||
|
||||
|
|
|
@ -6,21 +6,12 @@
|
|||
];
|
||||
|
||||
sisyphus = {
|
||||
desktop.sway.enable = true;
|
||||
|
||||
hardware = {
|
||||
nvidia = {
|
||||
enable = true;
|
||||
model = "RTX 2060";
|
||||
gui-settings = true;
|
||||
};
|
||||
yubikey.enable = true;
|
||||
hardware.nvidia = {
|
||||
enable = true;
|
||||
model = "RTX 2060";
|
||||
};
|
||||
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
openconnect-sso.enable = true;
|
||||
};
|
||||
networking.openconnect-sso.enable = true;
|
||||
|
||||
nix = {
|
||||
flakes.enable = true;
|
||||
|
@ -42,13 +33,12 @@
|
|||
|
||||
users.tdpeuter.enable = true;
|
||||
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
virtualbox.enable = true;
|
||||
};
|
||||
virtualisation.virtualbox.enable = true;
|
||||
};
|
||||
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_hardened;
|
||||
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi = {
|
||||
|
@ -66,21 +56,17 @@
|
|||
zenith-nvidia
|
||||
];
|
||||
|
||||
programs = {
|
||||
steam.enable = true;
|
||||
zsh.enable = true;
|
||||
};
|
||||
programs.zsh.enable = true;
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
networking.hostName = "Tibo-NixDesk";
|
||||
|
||||
services.xserver = {
|
||||
layout = "us";
|
||||
xkbVariant = "altgr-intl";
|
||||
networking = {
|
||||
hostName = "Tibo-NixDesk";
|
||||
networkmanager.enable = true;
|
||||
# wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
};
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
system.stateVersion = "23.05";
|
||||
|
||||
time.timeZone = "Europe/Brussels";
|
||||
|
||||
|
|
|
@ -50,16 +50,6 @@
|
|||
"bind"
|
||||
];
|
||||
};
|
||||
|
||||
"/mnt/Games" = {
|
||||
device = "/dev/disk/by-label/Games";
|
||||
fsType = "ntfs";
|
||||
options = [
|
||||
"uid=tdpeuter"
|
||||
"gid=users"
|
||||
"defaults"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
|
|
|
@ -6,21 +6,12 @@
|
|||
];
|
||||
|
||||
sisyphus = {
|
||||
desktop.sway.enable = true;
|
||||
|
||||
hardware = {
|
||||
eid.enable = true;
|
||||
nvidia = {
|
||||
enable = true;
|
||||
model = "Quadro T2000";
|
||||
};
|
||||
yubikey.enable = true;
|
||||
hardware.nvidia = {
|
||||
enable = true;
|
||||
model = "Quadro T2000";
|
||||
};
|
||||
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
# openconnect-sso.enable = true;
|
||||
};
|
||||
networking.openconnect-sso.enable = true;
|
||||
|
||||
nix = {
|
||||
flakes.enable = true;
|
||||
|
@ -41,10 +32,7 @@
|
|||
|
||||
users.tdpeuter.enable = true;
|
||||
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
virtualbox.enable = true;
|
||||
};
|
||||
virtualisation.virtualbox.enable = true;
|
||||
};
|
||||
|
||||
boot = {
|
||||
|
@ -60,6 +48,8 @@
|
|||
};
|
||||
};
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_hardened;
|
||||
|
||||
# Use the systemd-boot EFI boot loader.]
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
|
@ -79,6 +69,7 @@
|
|||
];
|
||||
|
||||
programs = {
|
||||
steam.enable = true;
|
||||
zsh.enable = true;
|
||||
};
|
||||
|
||||
|
@ -97,24 +88,23 @@
|
|||
lidSwitchDocked = "ignore";
|
||||
};
|
||||
|
||||
xserver.xkb = {
|
||||
# Keyboard layout
|
||||
layout = "us";
|
||||
variant = "altgr-intl";
|
||||
};
|
||||
|
||||
# Touchpad
|
||||
libinput.enable = true;
|
||||
xserver.libinput.enable = true;
|
||||
};
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
system.stateVersion = "23.05";
|
||||
|
||||
time.timeZone = "Europe/Brussels";
|
||||
|
||||
# --- Barrier ---
|
||||
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
};
|
||||
|
||||
i18n.defaultLocale = "en_GB.UTF-8";
|
||||
console = {
|
||||
# font = "Lat2-Terminus16";
|
||||
useXkbConfig = true; # use xkbOptions in tty.
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./gnome
|
||||
./hyprland
|
||||
./plasma
|
||||
./sway
|
||||
];
|
||||
|
|
|
@ -8,6 +8,8 @@ in {
|
|||
config = lib.mkIf cfg.enable {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
layout = "us";
|
||||
xkbVariant = "altgr-intl";
|
||||
|
||||
excludePackages = with pkgs; [
|
||||
xterm
|
||||
|
@ -32,8 +34,6 @@ in {
|
|||
gnome-photos
|
||||
gnome-text-editor
|
||||
gnome-tour
|
||||
loupe # Image viewer
|
||||
snapshot # Camera
|
||||
]) ++ (with pkgs.gnome; [
|
||||
eog # Image viewer
|
||||
file-roller # Archive manager
|
||||
|
@ -45,8 +45,6 @@ in {
|
|||
gnome-clocks
|
||||
gnome-contacts
|
||||
gnome-disk-utility
|
||||
gnome-font-viewer
|
||||
gnome-logs
|
||||
gnome-maps
|
||||
gnome-music
|
||||
gnome-system-monitor
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.desktop.hyprland;
|
||||
in {
|
||||
options.sisyphus.desktop.hyprland.enable = lib.mkEnableOption "Hyprland";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -38,26 +38,6 @@ let
|
|||
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
|
||||
gnome_schema=org.gnome.desktop.interface
|
||||
# gsettings set $gnome_schema gtk-theme 'Dracula'
|
||||
|
||||
# https://github.com/crispyricepc/sway-nvidia/blob/2101a18698151a61266740f1297158119bf660ac/wlroots-env-nvidia.sh
|
||||
# Hardware cursors not yet working on wlroots
|
||||
export WLR_NO_HARDWARE_CURSORS=1
|
||||
# Set wlroots renderer to Vulkan to avoid flickering
|
||||
export WLR_RENDERER=vulkan
|
||||
# General wayland environment variables
|
||||
export XDG_SESSION_TYPE=wayland
|
||||
export QT_QPA_PLATFORM=wayland
|
||||
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
|
||||
# Firefox wayland environment variable
|
||||
export MOZ_ENABLE_WAYLAND=1
|
||||
export MOZ_USE_XINPUT2=1
|
||||
# OpenGL Variables
|
||||
export GBM_BACKEND=nvidia-drm
|
||||
export __GL_GSYNC_ALLOWED=0
|
||||
export __GL_VRR_ALLOWED=0
|
||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||
# Xwayland compatibility
|
||||
export XWAYLAND_NO_GLAMOR=1
|
||||
'';
|
||||
};
|
||||
in {
|
||||
|
@ -94,7 +74,7 @@ in {
|
|||
SCRIPT_DIR = ../../../../scripts;
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
fonts.fonts = with pkgs; [
|
||||
dejavu_fonts
|
||||
font-awesome
|
||||
noto-fonts
|
||||
|
@ -120,17 +100,14 @@ in {
|
|||
|
||||
power-profiles-daemon.enable = true;
|
||||
|
||||
xserver = {
|
||||
displayManager.session = [{
|
||||
manage = "window";
|
||||
name = "Sway";
|
||||
start = ''
|
||||
${pkgs.sway}/bin/sway --unsupported-gpu &
|
||||
waitPID=$!
|
||||
'';
|
||||
}];
|
||||
videoDrivers = [ "nouveau" ];
|
||||
};
|
||||
xserver.displayManager.session = [{
|
||||
manage = "window";
|
||||
name = "Sway";
|
||||
start = ''
|
||||
${pkgs.sway}/bin/sway --unsupported-gpu &
|
||||
waitPID=$!
|
||||
'';
|
||||
}];
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./eid
|
||||
./nvidia
|
||||
./yubikey
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.hardware.eid;
|
||||
in {
|
||||
options.sisyphus.hardware.eid.enable = lib.mkEnableOption "Electronic identity card (eID)";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.pcscd = {
|
||||
enable = true;
|
||||
plugins = [ pkgs.ccid ];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
eid-mw
|
||||
];
|
||||
};
|
||||
}
|
|
@ -3,7 +3,6 @@
|
|||
let
|
||||
cfg = config.sisyphus.hardware.nvidia;
|
||||
|
||||
# The graphics cards for which to do offloading
|
||||
do-offloading = builtins.elem cfg.model [ "Quadro T2000" ];
|
||||
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
|
||||
export __NV_PRIME_RENDER_OFFLOAD=1
|
||||
|
@ -25,17 +24,8 @@ in {
|
|||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# boot = {
|
||||
# extraModprobeConfig = "options nvidia-drm modeset=1";
|
||||
#
|
||||
# initrd.kernelModules = [
|
||||
# "nvidia"
|
||||
# "nvidia_modeset"
|
||||
# "nvidia_uvm"
|
||||
# "nvidia_drm"
|
||||
# ];
|
||||
# };
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
hardware = {
|
||||
opengl = {
|
||||
enable = true;
|
||||
|
@ -43,7 +33,7 @@ in {
|
|||
driSupport32Bit = true;
|
||||
};
|
||||
nvidia = {
|
||||
open = false;
|
||||
open = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
modesetting.enable = true;
|
||||
nvidiaSettings = cfg.gui-settings;
|
||||
|
@ -52,9 +42,6 @@ in {
|
|||
finegrained = do-offloading;
|
||||
};
|
||||
|
||||
# Avoid flickering
|
||||
forceFullCompositionPipeline = true;
|
||||
|
||||
prime = lib.mkMerge [
|
||||
(lib.mkIf do-offloading {
|
||||
offload = {
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.hardware.yubikey;
|
||||
in {
|
||||
options.sisyphus.hardware.yubikey.enable = lib.mkEnableOption "YubiKey support";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs = {
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
# TODO Necessary?
|
||||
# enableSSHSupport = true;
|
||||
# pinentryFlavor = "curses";
|
||||
};
|
||||
|
||||
# yubikey-touch-detector.enable = true;
|
||||
};
|
||||
|
||||
# Enable smart card reading
|
||||
services.pcscd.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
yubikey-touch-detector
|
||||
];
|
||||
|
||||
# Send a notification if the YubiKey is waiting for touch.
|
||||
systemd.user.services.yubikey-touch-detector = {
|
||||
enable = true;
|
||||
description = "Detects when your YubiKey is waiting for a touch";
|
||||
path = with pkgs; [ yubikey-touch-detector ];
|
||||
script = ''exec yubikey-touch-detector --notify'';
|
||||
environment.YUBIKEY_TOUCH_DETECTOR_LIBNOTIFY = "true";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./networkmanager
|
||||
./openconnect-sso
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.networking.networkmanager;
|
||||
in {
|
||||
options.sisyphus.networking.networkmanager.enable = lib.mkEnableOption "NetworkManager";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Prevent slow boot times
|
||||
systemd.services.NetworkManager-wait-online.enable = false;
|
||||
};
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
{ config, inputs, lib, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.networking.openconnect-sso;
|
||||
|
@ -6,8 +6,15 @@ in {
|
|||
options.sisyphus.networking.openconnect-sso.enable = lib.mkEnableOption "OpenConnect SSO";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
nixpkgs = {
|
||||
config.permittedInsecurePackages = [
|
||||
"python3.10-requests-2.28.2"
|
||||
"python3.10-cryptography-40.0.1"
|
||||
];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
inputs.openconnect-sso.packages.${config.nixpkgs.localSystem.system}.default
|
||||
openconnect-sso
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.programs.direnv;
|
||||
cfg = sisyphus.programs.direnv;
|
||||
in {
|
||||
options.sisyphus.programs.direnv.enable = lib.mkEnableOption "direnv";
|
||||
|
||||
|
@ -9,13 +9,14 @@ in {
|
|||
programs.direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true; # Use nix-specific direnv.
|
||||
persistDerivations = true; # Sets the extraOptions listed below.
|
||||
};
|
||||
|
||||
# This is also done by setting programs.direnv.persistDerivations.
|
||||
# Keep derivations so shells don't break.
|
||||
nix.extraOptions = ''
|
||||
nix.extraOption = ''
|
||||
keep-outputs = true
|
||||
keep-derivations = true
|
||||
'';
|
||||
};
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./monero
|
||||
./openrgb
|
||||
./openssh
|
||||
./pipewire
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.services.monero;
|
||||
in {
|
||||
options.sisyphus.services.monero.enable = lib.mkEnableOption "Monero";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
monero-cli
|
||||
];
|
||||
|
||||
services = {
|
||||
# Choose to run a node or not.
|
||||
monero.enable = true;
|
||||
|
||||
xmrig = {
|
||||
enable = true;
|
||||
settings = {
|
||||
autosave = true;
|
||||
background = true;
|
||||
pause-on-battery = true;
|
||||
pause-on-active = 60;
|
||||
donate-level = 5;
|
||||
cpu = true;
|
||||
opencl = false;
|
||||
cuda = true;
|
||||
pools = [
|
||||
{
|
||||
url = "monerohash.com:9999";
|
||||
# url = "127.0.0.1:18081"; # Local node
|
||||
user = "44FjmmLn1k1GC1AFTLSdWDZ17CHB2h3eRCnfkfTQBucHaKX1AGS5oLERR1FEaHxPQcUNwrbEfsgbY4Y6bYJm6ZrdCYGwg7b";
|
||||
keepalive = true;
|
||||
tls = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,7 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./docker
|
||||
./qemu
|
||||
./virtualbox
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.virtualisation.docker;
|
||||
in {
|
||||
options.sisyphus.virtualisation.docker.enable = lib.mkEnableOption "Docker";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
# Because these are made for development purposes and not for servers
|
||||
enableOnBoot = false;
|
||||
};
|
||||
|
||||
hardware.nvidia-container-toolkit.enable = true;
|
||||
};
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.virtualisation.qemu;
|
||||
in {
|
||||
options.sisyphus.virtualisation.qemu.enable = lib.mkEnableOption "QEMU";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
qemu
|
||||
];
|
||||
|
||||
virtualisation.libvirtd.qemu.runAsRoot = false;
|
||||
};
|
||||
}
|
|
@ -25,12 +25,10 @@ in {
|
|||
};
|
||||
guest = {
|
||||
enable = true;
|
||||
clipboard = true;
|
||||
seamless = true;
|
||||
x11 = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Define the group
|
||||
users.groups.vboxusers = {};
|
||||
|
||||
sisyphus.users.wantedGroups = [
|
||||
|
|
4
nixos/overlays/openconnect-sso/default.nix
Normal file
4
nixos/overlays/openconnect-sso/default.nix
Normal file
|
@ -0,0 +1,4 @@
|
|||
import "${builtins.fetchTarball {
|
||||
url = "https://github.com/vlaci/openconnect-sso/archive/master.tar.gz";
|
||||
sha256 = "08cqd40p9vld1liyl6qrsdrilzc709scyfghfzmmja3m1m7nym94";
|
||||
}}/overlay.nix"
|
|
@ -35,7 +35,7 @@ in {
|
|||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
fonts.fonts = with pkgs; [
|
||||
corefonts # Calibri for Uni
|
||||
font-awesome # Dependency of Vifm & zsh config
|
||||
letter # Personal font
|
||||
|
@ -45,6 +45,7 @@ in {
|
|||
];
|
||||
|
||||
sisyphus = {
|
||||
desktop.sway.enable = true;
|
||||
programs.spotify-adblock.enable = true;
|
||||
};
|
||||
|
||||
|
@ -56,26 +57,24 @@ in {
|
|||
homeDirectory = "/home/${user}";
|
||||
inherit (config.system) stateVersion;
|
||||
|
||||
# If you specify an application here, it will be detected by the configuration module
|
||||
# and the configuration files will be put in place for you.
|
||||
packages = (with pkgs; [
|
||||
cmdtime # Zsh plugin
|
||||
icosystem # Personal icon theme
|
||||
spotify-adblock
|
||||
]) ++ (with pkgs-unstable; [
|
||||
brave
|
||||
chafa # Terminal image viewer
|
||||
cmdtime # Zsh plugin
|
||||
duf # Df alternative
|
||||
foot
|
||||
fzf
|
||||
glow # Terminal Markdown renderer
|
||||
icosystem # Personal icon theme
|
||||
jellyfin-media-player
|
||||
kitty
|
||||
libreoffice-fresh
|
||||
logseq
|
||||
mpv
|
||||
nextcloud-client
|
||||
nsxiv # Lightweight image viewer
|
||||
oh-my-zsh
|
||||
phinger-cursors # Cursor theme
|
||||
qalculate-gtk # Calculator
|
||||
spotify
|
||||
tea # Gitea CLI
|
||||
unzip
|
||||
vifm # File manager
|
||||
zathura # PDF viewer
|
||||
|
@ -86,14 +85,19 @@ in {
|
|||
|
||||
# SMB
|
||||
cifs-utils psmisc
|
||||
|
||||
# Linters and LSPs
|
||||
statix # Nix
|
||||
ruff pylint # Python
|
||||
]) ++ (with pkgs-unstable; [
|
||||
mpv
|
||||
obsidian
|
||||
spotify
|
||||
]) ++ (with pkgs.vimPlugins; [
|
||||
statix
|
||||
vim-plug
|
||||
]);
|
||||
|
||||
pointerCursor = {
|
||||
inherit (cursor) package name size;
|
||||
package = cursor.package;
|
||||
name = cursor.name;
|
||||
size = cursor.size;
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
};
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
{ config, lib, pkgs, pkgs-unstable, ... }:
|
||||
|
||||
# Does basically the same thing that stow does, but using Nix.
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.users.tdpeuter;
|
||||
user = config.users.users.tdpeuter.name;
|
||||
|
@ -10,107 +8,109 @@ in {
|
|||
config = lib.mkIf cfg.enable {
|
||||
home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable {
|
||||
home = {
|
||||
file = lib.mkMerge [
|
||||
{
|
||||
".config/alacritty" = {
|
||||
enable = false;
|
||||
source = ../../../stow/alacritty/.config/alacritty;
|
||||
};
|
||||
".config/dunst" = {
|
||||
inherit (config.sisyphus.desktop.sway) enable;
|
||||
source = ../../../stow/dunst/.config/dunst;
|
||||
};
|
||||
".config/foot" = {
|
||||
recursive = true;
|
||||
source = ../../../stow/foot/.config/foot;
|
||||
};
|
||||
".config/fuzzel" = {
|
||||
recursive = true;
|
||||
source = ../../../stow/fuzzel/.config/fuzzel;
|
||||
};
|
||||
".config/git" = {
|
||||
recursive = true;
|
||||
source = ../../../stow/git/.config/git;
|
||||
};
|
||||
".config/kitty" = {
|
||||
enable = false;
|
||||
recursive = true;
|
||||
source = ../../../stow/kitty/.config/kitty;
|
||||
};
|
||||
".config/mako" = {
|
||||
enable = false;
|
||||
source = ../../../stow/mako/.config/mako;
|
||||
};
|
||||
".config/mpv" = {
|
||||
source = ../../../stow/mpv/.config/mpv;
|
||||
};
|
||||
".config/OpenRGB" = {
|
||||
inherit (config.sisyphus.services.openrgb) enable;
|
||||
recursive = true;
|
||||
source = ../../../stow/openrgb/.config/OpenRGB;
|
||||
};
|
||||
".config/sway" = {
|
||||
inherit (config.sisyphus.desktop.sway) enable;
|
||||
source = ../../../stow/sway/.config/sway;
|
||||
};
|
||||
".config/swayidle" = {
|
||||
inherit (config.sisyphus.desktop.sway) enable;
|
||||
source = ../../../stow/swayidle/.config/swayidle;
|
||||
};
|
||||
".config/swaylock" = {
|
||||
inherit (config.sisyphus.desktop.sway) enable;
|
||||
source = ../../../stow/swaylock/.config/swaylock;
|
||||
};
|
||||
".config/vifm" = {
|
||||
recursive = true; # Fix history and all working
|
||||
source = ../../../stow/vifm/.config/vifm;
|
||||
};
|
||||
".config/waybar" = {
|
||||
inherit (config.sisyphus.desktop.sway) enable;
|
||||
source = ../../../stow/waybar/.config/waybar;
|
||||
};
|
||||
".config/zellij" = {
|
||||
source = ../../../stow/zellij/.config/zellij;
|
||||
};
|
||||
".oh-my-zsh" = {
|
||||
enable = config.users.users.tdpeuter.shell == pkgs.zsh;
|
||||
source = "${pkgs.oh-my-zsh}/share/oh-my-zsh";
|
||||
recursive = true;
|
||||
};
|
||||
".oh-my-zsh/themes/tdpeuter.zsh-theme" = {
|
||||
enable = config.users.users.tdpeuter.shell == pkgs.zsh;
|
||||
source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme;
|
||||
};
|
||||
".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable {
|
||||
inherit (config.sisyphus.programs.ssh) enable;
|
||||
source = ../../../stow/ssh/.ssh/config;
|
||||
};
|
||||
".vim" = {
|
||||
recursive = true;
|
||||
source = ../../../stow/vim/.vim;
|
||||
};
|
||||
".vim/autoload/plug.vim" = {
|
||||
source = "${pkgs.vimPlugins.vim-plug}/plug.vim";
|
||||
};
|
||||
".vimrc" = {
|
||||
source = ../../../stow/vim/.vimrc;
|
||||
};
|
||||
}
|
||||
(lib.mkIf (config.users.users.tdpeuter.shell == pkgs.zsh) {
|
||||
".zshrc" = {
|
||||
source = ../../../stow/zsh/.zshrc;
|
||||
};
|
||||
".zsh/plugins/cmdtime/cmdtime.plugin.zsh" = {
|
||||
source = "${pkgs.cmdtime}/share/cmdtime/cmdtime.plugin.zsh";
|
||||
};
|
||||
".zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" = {
|
||||
source = "${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh";
|
||||
};
|
||||
".zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" = {
|
||||
source = "${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh";
|
||||
};
|
||||
})
|
||||
];
|
||||
file = {
|
||||
".config/alacritty" = lib.mkIf (builtins.elem pkgs.alacritty installedPkgs) {
|
||||
source = ../../../stow/alacritty/.config/alacritty;
|
||||
};
|
||||
".config/dunst" = {
|
||||
enable = config.sisyphus.desktop.sway.enable;
|
||||
source = ../../../stow/dunst/.config/dunst;
|
||||
};
|
||||
".config/fuzzel" = {
|
||||
enable = builtins.elem pkgs.fuzzel installedPkgs;
|
||||
source = ../../../stow/fuzzel/.config/fuzzel;
|
||||
recursive = true;
|
||||
};
|
||||
".config/git" = {
|
||||
enable = (builtins.elem pkgs.git installedPkgs);
|
||||
source = ../../../stow/git/.config/git;
|
||||
recursive = true;
|
||||
};
|
||||
".config/kitty" = {
|
||||
enable = builtins.elem pkgs.kitty installedPkgs;
|
||||
source = ../../../stow/kitty/.config/kitty;
|
||||
recursive = true;
|
||||
};
|
||||
".config/mako" = {
|
||||
enable = builtins.elem pkgs.mako installedPkgs;
|
||||
source = ../../../stow/mako/.config/mako;
|
||||
};
|
||||
".config/mpv" = {
|
||||
enable = (builtins.elem pkgs-unstable.mpv installedPkgs);
|
||||
source = ../../../stow/mpv/.config/mpv;
|
||||
};
|
||||
".config/OpenRGB" = {
|
||||
enable = config.sisyphus.services.openrgb.enable;
|
||||
source = ../../../stow/openrgb/.config/OpenRGB;
|
||||
recursive = true;
|
||||
};
|
||||
".config/sway" = {
|
||||
enable = config.sisyphus.desktop.sway.enable;
|
||||
source = ../../../stow/sway/.config/sway;
|
||||
};
|
||||
".config/swayidle" = {
|
||||
enable = (builtins.elem pkgs.swayidle installedPkgs);
|
||||
source = ../../../stow/swayidle/.config/swayidle;
|
||||
};
|
||||
".config/swaylock" = {
|
||||
enable = config.sisyphus.desktop.sway.enable;
|
||||
source = ../../../stow/swaylock/.config/swaylock;
|
||||
};
|
||||
".config/vifm" = {
|
||||
enable = (builtins.elem pkgs.vifm installedPkgs);
|
||||
source = ../../../stow/vifm/.config/vifm;
|
||||
recursive = true; # Fix history and all working
|
||||
};
|
||||
".config/waybar" = {
|
||||
enable = config.sisyphus.desktop.sway.enable;
|
||||
source = ../../../stow/waybar/.config/waybar;
|
||||
};
|
||||
".config/zellij" = {
|
||||
enable = (builtins.elem pkgs.zellij installedPkgs);
|
||||
source = ../../../stow/zellij/.config/zellij;
|
||||
};
|
||||
".oh-my-zsh" = {
|
||||
enable = true;
|
||||
source = "${pkgs.oh-my-zsh}/share/oh-my-zsh";
|
||||
recursive = true;
|
||||
};
|
||||
".oh-my-zsh/themes/tdpeuter.zsh-theme" = {
|
||||
enable = (builtins.elem pkgs.zsh installedPkgs);
|
||||
source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme;
|
||||
};
|
||||
".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable {
|
||||
source = ../../../stow/ssh/.ssh/config;
|
||||
};
|
||||
".vim" = {
|
||||
enable = (builtins.elem pkgs.vim-full installedPkgs);
|
||||
source = ../../../stow/vim/.vim;
|
||||
recursive = true;
|
||||
};
|
||||
".vim/autoload/plug.vim" = {
|
||||
enable = (builtins.elem pkgs.vim-full installedPkgs);
|
||||
source = "${pkgs.vimPlugins.vim-plug}/plug.vim";
|
||||
};
|
||||
".vimrc" = {
|
||||
enable = (builtins.elem pkgs.vim-full installedPkgs);
|
||||
source = ../../../stow/vim/.vimrc;
|
||||
};
|
||||
".zshrc" = {
|
||||
enable = (config.users.users.tdpeuter.shell == pkgs.zsh);
|
||||
source = ../../../stow/zsh/.zshrc;
|
||||
};
|
||||
".zsh/plugins/cmdtime/cmdtime.plugin.zsh" = {
|
||||
enable = (builtins.elem pkgs.cmdtime installedPkgs);
|
||||
source = "${pkgs.cmdtime}/share/cmdtime/cmdtime.plugin.zsh";
|
||||
};
|
||||
".zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" = {
|
||||
enable = (builtins.elem pkgs.zsh-autosuggestions installedPkgs);
|
||||
source = "${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh";
|
||||
};
|
||||
".zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" = {
|
||||
enable = (builtins.elem pkgs.zsh-syntax-highlighting installedPkgs);
|
||||
source = "${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -7,57 +7,51 @@ in {
|
|||
config = lib.mkIf cfg.enable {
|
||||
home-manager.users.tdpeuter.programs.firefox = lib.mkIf config.sisyphus.programs.home-manager.enable {
|
||||
enable = true;
|
||||
package = pkgs-unstable.firefox.override {
|
||||
package = pkgs.firefox.override {
|
||||
cfg = {
|
||||
enableTridactylNative = true;
|
||||
speechSynthesisSupport = true; # Allow Text-to-speech in e.g. Discord
|
||||
};
|
||||
nativeMessagingHosts = with pkgs; [
|
||||
tridactyl-native
|
||||
];
|
||||
extraPolicies = {
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
DisableTelemetry = true;
|
||||
ExtensionSettings = {};
|
||||
OfferToSaveLogins = false;
|
||||
};
|
||||
|
||||
# Support smart cards
|
||||
pkcs11Modules = with pkgs-unstable; [
|
||||
eid-mw
|
||||
];
|
||||
};
|
||||
|
||||
profiles.tdpeuter.search= {
|
||||
default = "DuckDuckGo";
|
||||
force = true;
|
||||
engines = {
|
||||
"Bing".metaData.hidden = true;
|
||||
"eBay".metaData.hidden = true;
|
||||
"Qwant".metaData.hidden = true;
|
||||
|
||||
"Nix Packages" = {
|
||||
urls = [{
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
{ name = "type"; value = "packages"; }
|
||||
{ name = "query"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@np" ];
|
||||
};
|
||||
"GitHub" = {
|
||||
urls = [{
|
||||
template = "https://github.com/search";
|
||||
params = [
|
||||
{ name = "q"; value = "{searchTerms}"; }
|
||||
{ name = "type"; value = "repositories"; }
|
||||
];
|
||||
}];
|
||||
|
||||
icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg";
|
||||
definedAliases = [ "@gh" ];
|
||||
profiles.tdpeuter = {
|
||||
search = {
|
||||
default = "DuckDuckGo";
|
||||
force = true;
|
||||
engines = {
|
||||
"Bing".metaData.hidden = true;
|
||||
"eBay".metaData.hidden = true;
|
||||
|
||||
"Nix Packages" = {
|
||||
urls = [{
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
{ name = "type"; value = "packages"; }
|
||||
{ name = "query"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@np" ];
|
||||
};
|
||||
"GitHub" = {
|
||||
urls = [{
|
||||
template = "https://github.com/search";
|
||||
params = [
|
||||
{ name = "q"; value = "{searchTerms}"; }
|
||||
{ name = "type"; value = "repositories"; }
|
||||
];
|
||||
}];
|
||||
|
||||
icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg";
|
||||
definedAliases = [ "@gh" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -67,13 +67,9 @@ in {
|
|||
thunderbird = {
|
||||
enable = true;
|
||||
settings = id: {
|
||||
"mail.server.server_${id}.authMethod" = 10;
|
||||
"mail.server.server_${id}.authMethod" = 10;
|
||||
"mail.smtpserver.smtp_${id}.authMethod" = 10;
|
||||
"mail.identity.id_${id}.htmlSigText" = signatures.UGent;
|
||||
|
||||
# Allow PGP
|
||||
"mail.identity.id_${id}.openpgp_key_id" = "9B11F5243089DB5B"; # Your 'master' key
|
||||
"mail.identity.id_${id}.attachPgpKey" = true;
|
||||
"mail.identity.id_${id}.htmlSigText" = signatures.UGent;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -121,15 +117,10 @@ in {
|
|||
profiles.tdpeuter = {
|
||||
isDefault = true;
|
||||
settings = {
|
||||
# View
|
||||
"mailnews.default_sort_order" = 2; # Sort descending
|
||||
"mailnews.default_sort_order" = 2; # Sort descending
|
||||
"mailnews.mark_message_read.delay" = true;
|
||||
"mailnews.start_page.enabled" = false;
|
||||
"mail.pane_config.dynamic" = 2; # Vertical view
|
||||
|
||||
# Encryption
|
||||
"mail.openpgp.allow_external_gnupg" = true; # Enable YubiKey GPG signing
|
||||
"mail.e2ee.auto_enable" = true; # Automatically enable encryption when possible.
|
||||
"mail.pane_config.dynamic" = 2; # Vertical view
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# Toggle light- or dark-mode for your applications
|
||||
# Usage: toggle [-m light|dark] [-g]
|
||||
# Usage: toggle [-m light|dark]
|
||||
|
||||
#################
|
||||
### Variables ###
|
||||
|
@ -10,9 +10,7 @@ THEME_LIGHT='tdpeuter-light'
|
|||
THEME_DARK='tdpeuter-dark'
|
||||
THEME_DEFAULT="${THEME_LIGHT}"
|
||||
|
||||
STATE_DIR="${HOME}/.local/state/sisyphus"
|
||||
STATE_FILE="${STATE_DIR}/theme"
|
||||
BG_DIR="${HOME}/Nextcloud/Afbeeldingen/wallpapers"
|
||||
STATE_FILE="${HOME}/.local/state/sisyphus/theme"
|
||||
|
||||
declare -A theme_next
|
||||
theme_next[${THEME_LIGHT}]="${THEME_DARK}"
|
||||
|
@ -22,12 +20,8 @@ declare -A gsettings_alt
|
|||
gsettings_alt[${THEME_LIGHT}]='default'
|
||||
gsettings_alt[${THEME_DARK}]='prefer-dark'
|
||||
|
||||
declare -A gtk_theme
|
||||
gtk_theme[${THEME_LIGHT}]='Adwaita'
|
||||
gtk_theme[${THEME_DARK}]='Adwaita-dark'
|
||||
|
||||
declare -A wallpaper
|
||||
wallpaper[${THEME_LIGHT}]="bg-light"
|
||||
wallpaper[${THEME_LIGHT}]="bg"
|
||||
wallpaper[${THEME_DARK}]="bg-dark"
|
||||
|
||||
#############
|
||||
|
@ -35,7 +29,7 @@ wallpaper[${THEME_DARK}]="bg-dark"
|
|||
#############
|
||||
|
||||
# Parse options
|
||||
while getopts ":m:g" option; do
|
||||
while getopts ":m:" option; do
|
||||
case "${option}" in
|
||||
m)
|
||||
if [ "${OPTARG}" == 'light' ]; then
|
||||
|
@ -47,17 +41,6 @@ while getopts ":m:g" option; do
|
|||
exit 1
|
||||
fi
|
||||
;;
|
||||
g)
|
||||
previous_theme="$(cat ${STATE_FILE})"
|
||||
if [ "${previous_theme}" == "${THEME_LIGHT}" ]; then
|
||||
class="activated"
|
||||
percentage=1
|
||||
else
|
||||
percentage=0
|
||||
fi
|
||||
printf '{ "class": "%s", "percentage": %d }' "${class}" "${percentage}"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
>&2 printf "Error: Invalid option: '%s'.\n" "${option}"
|
||||
exit 1
|
||||
|
@ -82,33 +65,9 @@ echo "${theme:=${THEME_DEFAULT}}" > "${STATE_FILE}"
|
|||
### Set all themes ###
|
||||
######################
|
||||
|
||||
# Update terminal colors by sending it OSC sequences.
|
||||
# Alternatively, you could use theme.sh (https://github.com/lemnos/theme.sh)
|
||||
# Function below loosely based on theme.sh and https://codeberg.org/dnkl/foot/issues/708
|
||||
function update_terminal_colors() {
|
||||
for pid in $(pgrep zsh); do
|
||||
if [ "${theme}" == "${THEME_LIGHT}" ]; then
|
||||
printf "\033]10;#000000\007" >> /proc/${pid}/fd/0
|
||||
printf "\033]11;#ffffff\007" >> /proc/${pid}/fd/0
|
||||
elif [ "${theme}" == "${THEME_DARK}" ]; then
|
||||
printf "\033]10;#ffffff\007" >> /proc/${pid}/fd/0
|
||||
printf "\033]11;#000000\007" >> /proc/${pid}/fd/0
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Foot
|
||||
if [ "$(command -v foot)" ] ; then
|
||||
# Make color theme switch 'permanent'.
|
||||
echo "include=~/.config/foot/themes/${theme}.ini" > ~/.config/foot/theme.ini &
|
||||
# We will have to change the terminal colors ourselves.
|
||||
update_terminal_colors &
|
||||
fi
|
||||
|
||||
# GNOME (GTK)
|
||||
# GNOME
|
||||
if [ "$(command -v gsettings)" ]; then
|
||||
gsettings set org.gnome.desktop.interface color-scheme "${gsettings_alt[${theme}]}" &
|
||||
gsettings set org.gnome.desktop.interface gtk-theme "${gtk_theme[${theme}]}" &
|
||||
fi
|
||||
|
||||
# Kitty
|
||||
|
@ -118,8 +77,7 @@ fi
|
|||
|
||||
# Sway
|
||||
if [ "$(command -v swaybg)" ]; then
|
||||
bg_path="${BG_DIR}/${wallpaper[${theme}]}"
|
||||
/run/current-system/sw/bin/cp "${bg_path}" "${STATE_DIR}/bg" && swaymsg reload &
|
||||
pkill swaybg && swaybg -i ~/Nextcloud/Afbeeldingen/wallpapers/${wallpaper[${theme}]} && swaymsg reload &
|
||||
fi
|
||||
|
||||
# Vifm
|
||||
|
|
|
@ -1,229 +0,0 @@
|
|||
# -*- conf -*-
|
||||
# ~/.config/foot/foot.ini
|
||||
|
||||
# Include the correct color scheme
|
||||
include=~/.config/foot/theme.ini
|
||||
|
||||
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
|
||||
term=xterm-256color
|
||||
# login-shell=no
|
||||
|
||||
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
|
||||
# title=foot
|
||||
# locked-title=no
|
||||
|
||||
font=letter extended:size=10
|
||||
# font-bold=<bold variant of regular font>
|
||||
# font-italic=<italic variant of regular font>
|
||||
# font-bold-italic=<bold+italic variant of regular font>
|
||||
# font-size-adjustment=0.5
|
||||
# line-height=<font metrics>
|
||||
# letter-spacing=0
|
||||
# horizontal-letter-offset=0
|
||||
# vertical-letter-offset=0
|
||||
# underline-offset=<font metrics>
|
||||
# underline-thickness=<font underline thickness>
|
||||
# box-drawings-uses-font-glyphs=no
|
||||
dpi-aware=yes
|
||||
|
||||
# initial-window-size-pixels=700x500 # Or,
|
||||
# initial-window-size-chars=<COLSxROWS>
|
||||
# initial-window-mode=windowed
|
||||
pad=10x10 # optionally append 'center'
|
||||
# resize-delay-ms=100
|
||||
|
||||
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
|
||||
|
||||
# bold-text-in-bright=no
|
||||
# word-delimiters=,│`|:"'()[]{}<>
|
||||
# selection-target=primary
|
||||
# workers=<number of logical CPUs>
|
||||
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux)
|
||||
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD)
|
||||
|
||||
[environment]
|
||||
# name=value
|
||||
|
||||
[bell]
|
||||
urgent=yes
|
||||
notify=yes
|
||||
visual=yes
|
||||
# command=
|
||||
# command-focused=no
|
||||
|
||||
[scrollback]
|
||||
# lines=1000
|
||||
# multiplier=3.0
|
||||
# indicator-position=relative
|
||||
# indicator-format=""
|
||||
|
||||
[url]
|
||||
# launch=xdg-open ${url}
|
||||
# label-letters=sadfjklewcmpgh
|
||||
# osc8-underline=url-mode
|
||||
# protocols=http, https, ftp, ftps, file, gemini, gopher
|
||||
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
|
||||
|
||||
[cursor]
|
||||
# style=block
|
||||
# color=<inverse foreground/background>
|
||||
# blink=no
|
||||
# beam-thickness=1.5
|
||||
# underline-thickness=<font underline thickness>
|
||||
|
||||
[mouse]
|
||||
# hide-when-typing=no
|
||||
# alternate-scroll-mode=yes
|
||||
|
||||
[touch]
|
||||
# long-press-delay=400
|
||||
|
||||
[colors]
|
||||
alpha=0.8
|
||||
# background=242424
|
||||
# foreground=ffffff
|
||||
flash=b00020
|
||||
# flash-alpha=0.5
|
||||
|
||||
## Normal/regular colors (color palette 0-7)
|
||||
# regular0=242424 # black
|
||||
# regular1=f62b5a # red
|
||||
# regular2=47b413 # green
|
||||
# regular3=e3c401 # yellow
|
||||
# regular4=24acd4 # blue
|
||||
# regular5=f2affd # magenta
|
||||
# regular6=13c299 # cyan
|
||||
# regular7=e6e6e6 # white
|
||||
|
||||
## Bright colors (color palette 8-15)
|
||||
# bright0=616161 # bright black
|
||||
# bright1=ff4d51 # bright red
|
||||
# bright2=35d450 # bright green
|
||||
# bright3=e9e836 # bright yellow
|
||||
# bright4=5dc5f8 # bright blue
|
||||
# bright5=feabf2 # bright magenta
|
||||
# bright6=24dfc4 # bright cyan
|
||||
# bright7=ffffff # bright white
|
||||
|
||||
## dimmed colors (see foot.ini(5) man page)
|
||||
# dim0=<not set>
|
||||
# ...
|
||||
# dim7=<not-set>
|
||||
|
||||
## The remaining 256-color palette
|
||||
# 16 = <256-color palette #16>
|
||||
# ...
|
||||
# 255 = <256-color palette #255>
|
||||
|
||||
## Misc colors
|
||||
# selection-foreground=<inverse foreground/background>
|
||||
# selection-background=<inverse foreground/background>
|
||||
# jump-labels=<regular0> <regular3> # black-on-yellow
|
||||
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
|
||||
# search-box-no-match=<regular0> <regular1> # black-on-red
|
||||
# search-box-match=<regular0> <regular3> # black-on-yellow
|
||||
# urls=<regular3>
|
||||
|
||||
[csd]
|
||||
preferred=none
|
||||
# size=26
|
||||
# font=<primary font>
|
||||
# color=<foreground color>
|
||||
# hide-when-maximized=no
|
||||
# double-click-to-maximize=yes
|
||||
# border-width=0
|
||||
# border-color=<csd.color>
|
||||
# button-width=26
|
||||
# button-color=<background color>
|
||||
# button-minimize-color=<regular4>
|
||||
# button-maximize-color=<regular2>
|
||||
# button-close-color=<regular1>
|
||||
|
||||
[key-bindings]
|
||||
# scrollback-up-page=Shift+Page_Up
|
||||
# scrollback-up-half-page=none
|
||||
# scrollback-up-line=none
|
||||
# scrollback-down-page=Shift+Page_Down
|
||||
# scrollback-down-half-page=none
|
||||
# scrollback-down-line=none
|
||||
# scrollback-home=none
|
||||
# scrollback-end=none
|
||||
# clipboard-copy=Control+Shift+c XF86Copy
|
||||
# clipboard-paste=Control+Shift+v XF86Paste
|
||||
# primary-paste=Shift+Insert
|
||||
# search-start=Control+Shift+r
|
||||
# font-increase=Control+plus Control+equal Control+KP_Add
|
||||
# font-decrease=Control+minus Control+KP_Subtract
|
||||
# font-reset=Control+0 Control+KP_0
|
||||
# spawn-terminal=Control+Shift+n
|
||||
# minimize=none
|
||||
# maximize=none
|
||||
# fullscreen=none
|
||||
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||
# pipe-selected=[xargs -r firefox] none
|
||||
# show-urls-launch=Control+Shift+o
|
||||
# show-urls-copy=none
|
||||
# show-urls-persistent=none
|
||||
# prompt-prev=Control+Shift+z
|
||||
# prompt-next=Control+Shift+x
|
||||
# unicode-input=Control+Shift+u
|
||||
# noop=none
|
||||
|
||||
[search-bindings]
|
||||
# cancel=Control+g Control+c Escape
|
||||
# commit=Return
|
||||
# find-prev=Control+r
|
||||
# find-next=Control+s
|
||||
# cursor-left=Left Control+b
|
||||
# cursor-left-word=Control+Left Mod1+b
|
||||
# cursor-right=Right Control+f
|
||||
# cursor-right-word=Control+Right Mod1+f
|
||||
# cursor-home=Home Control+a
|
||||
# cursor-end=End Control+e
|
||||
# delete-prev=BackSpace
|
||||
# delete-prev-word=Mod1+BackSpace Control+BackSpace
|
||||
# delete-next=Delete
|
||||
# delete-next-word=Mod1+d Control+Delete
|
||||
# extend-char=Shift+Right
|
||||
# extend-to-word-boundary=Control+w Control+Shift+Right
|
||||
# extend-to-next-whitespace=Control+Shift+w
|
||||
# extend-line-down=Shift+Down
|
||||
# extend-backward-char=Shift+Left
|
||||
# extend-backward-to-word-boundary=Control+Shift+Left
|
||||
# extend-backward-to-next-whitespace=none
|
||||
# extend-line-up=Shift+Up
|
||||
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
|
||||
# primary-paste=Shift+Insert
|
||||
# unicode-input=none
|
||||
# scrollback-up-page=Shift+Page_Up
|
||||
# scrollback-up-half-page=none
|
||||
# scrollback-up-line=none
|
||||
# scrollback-down-page=Shift+Page_Down
|
||||
# scrollback-down-half-page=none
|
||||
# scrollback-down-line=none
|
||||
# scrollback-home=none
|
||||
# scrollback-end=none
|
||||
|
||||
[url-bindings]
|
||||
# cancel=Control+g Control+c Control+d Escape
|
||||
# toggle-url-visible=t
|
||||
|
||||
[text-bindings]
|
||||
# \x03=Mod4+c # Map Super+c -> Ctrl+c
|
||||
|
||||
[mouse-bindings]
|
||||
# scrollback-up-mouse=BTN_BACK
|
||||
# scrollback-down-mouse=BTN_FORWARD
|
||||
# selection-override-modifiers=Shift
|
||||
# primary-paste=BTN_MIDDLE
|
||||
# select-begin=BTN_LEFT
|
||||
# select-begin-block=Control+BTN_LEFT
|
||||
# select-extend=BTN_RIGHT
|
||||
# select-extend-character-wise=Control+BTN_RIGHT
|
||||
# select-word=BTN_LEFT-2
|
||||
# select-word-whitespace=Control+BTN_LEFT-2
|
||||
# select-quote = BTN_LEFT-3
|
||||
# select-row=BTN_LEFT-4
|
||||
|
||||
# vim: ft=dosini
|
|
@ -1,64 +0,0 @@
|
|||
[colors]
|
||||
# alpha=0.8
|
||||
background=171717
|
||||
foreground=dcdfe4
|
||||
# flash=b00020
|
||||
# flash-alpha=0.5
|
||||
|
||||
## Normal/regular colors (color palette 0-7)
|
||||
regular0=242424 # black
|
||||
# regular0=21222c
|
||||
# regular1=f62b5a # red
|
||||
regular1=c86564
|
||||
regular2=47b413 # green
|
||||
# regular2=b2bc68
|
||||
regular3=e3c401 # yellow
|
||||
# regular3=f7e03f
|
||||
# regular4=24acd4 # blue
|
||||
regular4=80a2be
|
||||
regular5=f2affd # magenta
|
||||
# color5 #b294bb
|
||||
# regular6=13c299 # cyan
|
||||
regular6=8abeb7
|
||||
regular7=e6e6e6 # white
|
||||
# regular7=ffffff
|
||||
|
||||
## Bright colors (color palette 8-15)
|
||||
# bright0=616161 # bright black
|
||||
# bright0=6272a4
|
||||
# bright1=ff4d51 # bright red
|
||||
# color9 #C86564
|
||||
# bright2=35d450 # bright green
|
||||
# color10 #B2BC68
|
||||
# bright3=e9e836 # bright yellow
|
||||
# color11 #f7e03f
|
||||
# bright4=5dc5f8 # bright blue
|
||||
# color12 #80A2BE
|
||||
# bright5=feabf2 # bright magenta
|
||||
# bright5=b294bb
|
||||
# bright6=24dfc4 # bright cyan
|
||||
# bright6=8abeb7
|
||||
bright7=ffffff # bright white
|
||||
|
||||
## dimmed colors (see foot.ini(5) man page)
|
||||
# dim0=<not set>
|
||||
# ...
|
||||
# dim7=<not-set>
|
||||
|
||||
## The remaining 256-color palette
|
||||
# 16 = <256-color palette #16>
|
||||
# ...
|
||||
# 255 = <256-color palette #255>
|
||||
|
||||
## Misc colors
|
||||
# selection-foreground=<inverse foreground/background>
|
||||
# selection-foreground=000000
|
||||
# selection-background=<inverse foreground/background>
|
||||
# selection-background=fffacd
|
||||
# jump-labels=<regular0> <regular3> # black-on-yellow
|
||||
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
|
||||
# search-box-no-match=<regular0> <regular1> # black-on-red
|
||||
# search-box-match=<regular0> <regular3> # black-on-yellow
|
||||
# urls=<regular3>
|
||||
urls=0087bd
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
[colors]
|
||||
# alpha=0.8
|
||||
background=fafafa
|
||||
foreground=000000
|
||||
# flash=b00020
|
||||
# flash-alpha=0.5
|
||||
|
||||
## Normal/regular colors (color palette 0-7)
|
||||
# regular0=242424 # black
|
||||
# color0 #383A42
|
||||
# regular1=f62b5a # red
|
||||
# color1 #E45649
|
||||
# regular2=47b413 # green
|
||||
# color2 #40A14F
|
||||
# regular3=e3c401 # yellow
|
||||
# color3 #C18401
|
||||
# regular4=24acd4 # blue
|
||||
regular4=0184bc
|
||||
# regular5=f2affd # magenta
|
||||
# color5 #A626A4
|
||||
# regular6=13c299 # cyan
|
||||
# color6 #0997B3
|
||||
# regular7=e6e6e6 # white
|
||||
# color7 #FAFAFA
|
||||
|
||||
## Bright colors (color palette 8-15)
|
||||
# bright0=616161 # bright black
|
||||
# color8 #6272a4
|
||||
# bright1=ff4d51 # bright red
|
||||
# color9 #E45649
|
||||
# bright2=35d450 # bright green
|
||||
# color10 #40A14F
|
||||
# bright3=e9e836 # bright yellow
|
||||
# color11 #C18401
|
||||
# bright4=5dc5f8 # bright blue
|
||||
# color12 #0184BC
|
||||
# bright5=feabf2 # bright magenta
|
||||
# color13 #A626A4
|
||||
# bright6=24dfc4 # bright cyan
|
||||
# color14 #0997B3
|
||||
# bright7=ffffff # bright white
|
||||
# color15 #FAFAFA
|
||||
|
||||
## dimmed colors (see foot.ini(5) man page)
|
||||
# dim0=<not set>
|
||||
# ...
|
||||
# dim7=<not-set>
|
||||
|
||||
## The remaining 256-color palette
|
||||
# 16 = <256-color palette #16>
|
||||
# ...
|
||||
# 255 = <256-color palette #255>
|
||||
|
||||
## Misc colors
|
||||
# selection-foreground=<inverse foreground/background>
|
||||
selection-foreground=383a42
|
||||
# selection-background=<inverse foreground/background>
|
||||
selection-background=bfceff
|
||||
# jump-labels=<regular0> <regular3> # black-on-yellow
|
||||
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
|
||||
# search-box-no-match=<regular0> <regular1> # black-on-red
|
||||
# search-box-match=<regular0> <regular3> # black-on-yellow
|
||||
urls=f0f0f0
|
||||
|
|
@ -1,21 +1,16 @@
|
|||
[user]
|
||||
name = "Tibo De Peuter"
|
||||
email = "tibo@depeuter.dev"
|
||||
signingkey = "0x9B11F5243089DB5B"
|
||||
email = "tibo.depeuter@gmail.com"
|
||||
|
||||
[color]
|
||||
ui = true
|
||||
|
||||
[commit]
|
||||
# Always sign commits
|
||||
gpgsign = true
|
||||
|
||||
[core]
|
||||
editor = "vim";
|
||||
excludesFile = "~/.config/git/ignore"
|
||||
|
||||
[help]
|
||||
autocorrect = 15
|
||||
autocorrect = 20
|
||||
|
||||
[includeIf "gitdir:~/university/"] # Trailing backslash is necessary!
|
||||
path = "~/.config/git/university"
|
||||
|
@ -23,6 +18,3 @@
|
|||
[init]
|
||||
defaultBranch = "main"
|
||||
|
||||
[safe]
|
||||
directory = "/home/tdpeuter/university/sshfs"
|
||||
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
[user]
|
||||
email = "tibo.depeuter@ugent.be"
|
||||
|
||||
|
|
|
@ -15,12 +15,10 @@ set {
|
|||
$scrollUp button4
|
||||
$scrollDown button5
|
||||
|
||||
# $term kitty || alacritty || foot
|
||||
$term foot
|
||||
$menu j4-dmenu-desktop --dmenu="rofi -dmenu -i" --no-generic --usage-log="/home/tdpeuter/.local/state/dmenu.log" --term=$term
|
||||
# TODO Find better location and better way to reference this.
|
||||
$term kitty || alacritty || foot
|
||||
$menu j4-dmenu-desktop --dmenu "rofi -dmenu -i"
|
||||
$window_switcher /home/tdpeuter/projects/fzf-jump/new.sh
|
||||
$lock swaylock -f
|
||||
$lock swaylock -f
|
||||
}
|
||||
|
||||
include {
|
||||
|
@ -49,8 +47,6 @@ for_window {
|
|||
[window_role="webconsole"] floating enable
|
||||
[window_type="dialog"] floating enable
|
||||
[window_type="menu"] floating enable
|
||||
|
||||
[app_id="qalculate-gtk"] floating enable, border pixel 1
|
||||
}
|
||||
|
||||
exec dbus-sway-environment
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
input type:keyboard {
|
||||
xkb_layout "us"
|
||||
xkb_variant "altgr-intl"
|
||||
}
|
||||
|
||||
input type:touchpad {
|
||||
natural_scroll enabled
|
||||
scroll_factor 0.8
|
||||
|
@ -11,10 +6,6 @@ input type:touchpad {
|
|||
}
|
||||
|
||||
output * {
|
||||
bg "${HOME}/.local/state/sisyphus/bg" fill
|
||||
bg "~/Nextcloud/Afbeeldingen/wallpapers/bg" fill
|
||||
}
|
||||
|
||||
# Vertical display
|
||||
output "Dell Inc. DELL P2214H 29C2937M4YTL" {
|
||||
transform 270
|
||||
}
|
||||
|
|
|
@ -55,22 +55,21 @@ bindsym {
|
|||
|
||||
# Workspaces
|
||||
set {
|
||||
$ws1 "1:1"
|
||||
$ws2 "2:2"
|
||||
$ws3 "3:3"
|
||||
$ws4 "4:4"
|
||||
$ws5 "5:5"
|
||||
$ws6 "6:6"
|
||||
$ws7 "7:7"
|
||||
$ws8 "8:8"
|
||||
$ws9 "9:9"
|
||||
$ws1 "1:1"
|
||||
$ws2 "2:2"
|
||||
$ws3 "3:3"
|
||||
$ws4 "4:4"
|
||||
$ws5 "5:5"
|
||||
$ws6 "6:6"
|
||||
$ws7 "7:7"
|
||||
$ws8 "8:8"
|
||||
$ws9 "9:9"
|
||||
$ws10 "10:10"
|
||||
$ws11 "11:Soc"
|
||||
$ws12 "12:Ent"
|
||||
}
|
||||
|
||||
bindsym {
|
||||
# Focus a specific workspace
|
||||
$flag+1 workspace $ws1
|
||||
$flag+2 workspace $ws2
|
||||
$flag+3 workspace $ws3
|
||||
|
@ -84,7 +83,6 @@ bindsym {
|
|||
$flag+minus workspace $ws11
|
||||
$flag+equal workspace $ws12
|
||||
|
||||
# Move window to a specific workspace
|
||||
$flag+Shift+1 move container to workspace $ws1, workspace $ws1
|
||||
$flag+Shift+2 move container to workspace $ws2, workspace $ws2
|
||||
$flag+Shift+3 move container to workspace $ws3, workspace $ws3
|
||||
|
@ -98,35 +96,20 @@ bindsym {
|
|||
$flag+Shift+minus move container to workspace $ws11, workspace $ws11
|
||||
$flag+Shift+equal move container to workspace $ws12, workspace $ws12
|
||||
|
||||
# Go through workspaces in order
|
||||
$flag+Control+$left workspace prev_on_output
|
||||
$flag+Control+$right workspace next_on_output
|
||||
|
||||
$flag+Control+Left workspace prev_on_output
|
||||
$flag+Control+Right workspace next_on_output
|
||||
|
||||
--whole-window $flag+$scrollUp workspace prev_on_output
|
||||
--whole-window $flag+$scrollDown workspace next_on_output
|
||||
|
||||
$flag+Control+Shift+$left move container to workspace prev_on_output, workspace prev_on_output
|
||||
$flag+Control+Shift+$right move container to workspace next_on_output, workspace next_on_output
|
||||
|
||||
$flag+Control+Shift+Left move container to workspace prev_on_output, workspace prev_on_output
|
||||
$flag+Control+Shift+Right move container to workspace next_on_output, workspace next_on_output
|
||||
|
||||
# Also GNOME-like keybinds
|
||||
$flag+$alt+$left workspace prev_on_output
|
||||
$flag+$alt+$right workspace next_on_output
|
||||
|
||||
$flag+$alt+Left workspace prev_on_output
|
||||
$flag+$alt+Right workspace next_on_output
|
||||
|
||||
$flag+$alt+Shift+$left move container to workspace prev_on_output, workspace prev_on_output
|
||||
$flag+$alt+Shift+$right move container to workspace next_on_output, workspace next_on_output
|
||||
|
||||
$flag+$alt+Shift+Left move container to workspace prev_on_output, workspace prev_on_output
|
||||
$flag+$alt+Shift+Right move container to workspace next_on_output, workspace next_on_output
|
||||
|
||||
# Use your mouse to scroll between workspaces
|
||||
--whole-window $flag+$scrollUp workspace prev_on_output
|
||||
--whole-window $flag+$scrollDown workspace next_on_output
|
||||
}
|
||||
|
||||
bindgesture {
|
||||
|
@ -136,40 +119,17 @@ bindgesture {
|
|||
|
||||
# Outputs
|
||||
bindsym {
|
||||
# Use "left" and "up" at the same time to mimic "previous"
|
||||
# Use "right" and "down" at the same time to mimic "next"
|
||||
# Though this does not work when using multiple screens, it's an intermediary solution until Sway supports "output next/previous"
|
||||
$flag+Control+$up focus output left, focus output up
|
||||
$flag+Control+$down focus output right, focus output down
|
||||
$flag+Control+$up focus output up
|
||||
$flag+Control+$down focus output down
|
||||
|
||||
$flag+Control+Up focus output left, focus output up
|
||||
$flag+Control+Down focus output right, focus output down
|
||||
$flag+Control+Up focus output up
|
||||
$flag+Control+Down focus output down
|
||||
|
||||
$flag+$alt+$up focus output left, focus output up
|
||||
$flag+$alt+$down focus output right, focus output down
|
||||
$flag+Control+Shift+$up move container to output up, focus output up
|
||||
$flag+Control+Shift+$down move container to output down, focus output down
|
||||
|
||||
$flag+$alt+Up focus output left, focus output up
|
||||
$flag+$alt+Down focus output right, focus output down
|
||||
|
||||
$flag+Control+Shift+$up move container to output left, focus output left \
|
||||
move container to output up, focus output up
|
||||
$flag+Control+Shift+$down move container to output right, focus output right \
|
||||
move container to output down, focus output down
|
||||
|
||||
$flag+Control+Shift+Up move container to output left, focus output left \
|
||||
move container to output up, focus output up
|
||||
$flag+Control+Shift+Down move container to output right, focus output right \
|
||||
move container to output down, focus output down
|
||||
|
||||
$flag+$alt+Shift+$up move container to output left, focus output left \
|
||||
move container to output up, focus output up
|
||||
$flag+$alt+Shift+$down move container to output right, focus output right \
|
||||
move container to output down, focus output down
|
||||
|
||||
$flag+$alt+Shift+Up move container to output left, focus output left \
|
||||
move container to output up, focus output up
|
||||
$flag+$alt+Shift+Down move container to output right, focus output right \
|
||||
move container to output down, focus output down
|
||||
$flag+Control+Shift+Up move container to output up, focus output up
|
||||
$flag+Control+Shift+Down move container to output down, focus output down
|
||||
}
|
||||
|
||||
# System
|
||||
|
@ -199,6 +159,7 @@ bindsym --locked {
|
|||
|
||||
bindgesture hold:3 exec playerctl play-pause
|
||||
|
||||
|
||||
# Shortcuts
|
||||
bindsym {
|
||||
# Reload sway
|
||||
|
@ -216,9 +177,6 @@ bindsym {
|
|||
$alt+Tab focus prev
|
||||
$flag+Tab exec $window_switcher
|
||||
|
||||
--whole-window $alt+$scrollUp focus prev
|
||||
--whole-window $alt+$scrollDown focus next
|
||||
|
||||
# Lock the screen
|
||||
$flag+Delete exec $lock
|
||||
|
||||
|
@ -229,10 +187,9 @@ bindsym {
|
|||
}
|
||||
|
||||
bindgesture {
|
||||
# Also show the bar, hide when finished
|
||||
swipe:3:up bar hidden_state show, exec "$window_switcher; swaymsg bar hidden_state hide"
|
||||
swipe:4:up exec "$menu; swaymsg bar hidden_state hide"
|
||||
swipe:3:up exec $window_switcher
|
||||
swipe:4:up exec $menu
|
||||
|
||||
# Cancel and hide bar
|
||||
swipe:down exec pkill rofi, bar hidden_state hide
|
||||
# Cancel
|
||||
swipe:down exec pkill rofi
|
||||
}
|
||||
|
|
|
@ -77,15 +77,12 @@ mode $mode_screenshot bindsym {
|
|||
}
|
||||
|
||||
set $mode_preferences "Toggle (d)ark mode, (s)unset, (n)otification"
|
||||
bindsym $alt+end mode $mode_preferences
|
||||
bindsym $alt+KP_End mode $mode_preferences
|
||||
mode $mode_preferences bindsym {
|
||||
d exec "${SCRIPT_DIR}/toggle-light-dark.sh", mode $default
|
||||
s exec "${SCRIPT_DIR}/sunset.sh", mode $default
|
||||
n exec "${SCRIPT_DIR}/do-not-disturb.sh", mode $default
|
||||
bindsym $alt+end mode $mode_preferences {
|
||||
d exec "${SCRIPT_DIR}/toggle-light-dark.sh", mode $default
|
||||
s exec "${SCRIPT_DIR}/sunset.sh", mode $default
|
||||
n exec "${SCRIPT_DIR}/do-not-disturb.sh", mode $default
|
||||
|
||||
Return mode $default
|
||||
Escape mode $default
|
||||
$alt+end mode $default
|
||||
$alt+KP_End mode $default
|
||||
Return mode $default
|
||||
Escape mode $default
|
||||
$alt+end mode $default
|
||||
}
|
||||
|
|
|
@ -1,87 +0,0 @@
|
|||
" vimrc file for following the coding standards specified in PEP 7 & 8.
|
||||
"
|
||||
" To use this file, source it in your own personal .vimrc file (``source
|
||||
" <filename>``) or, if you don't have a .vimrc file, you can just symlink to it
|
||||
" (``ln -s <this file> ~/.vimrc``). All options are protected by autocmds
|
||||
" (read below for an explanation of the command) so blind sourcing of this file
|
||||
" is safe and will not affect your settings for non-Python or non-C files.
|
||||
"
|
||||
"
|
||||
" All setting are protected by 'au' ('autocmd') statements. Only files ending
|
||||
" in .py or .pyw will trigger the Python settings while files ending in *.c or
|
||||
" *.h will trigger the C settings. This makes the file "safe" in terms of only
|
||||
" adjusting settings for Python and C files.
|
||||
"
|
||||
" Only basic settings needed to enforce the style guidelines are set.
|
||||
" Some suggested options are listed but commented out at the end of this file.
|
||||
|
||||
" Number of spaces that a pre-existing tab is equal to.
|
||||
" For the amount of space used for a new tab use shiftwidth.
|
||||
au BufRead,BufNewFile *py,*pyw,*.c,*.h set tabstop=8
|
||||
|
||||
" What to use for an indent.
|
||||
" This will affect Ctrl-T and 'autoindent'.
|
||||
" Python: 4 spaces
|
||||
" C: tabs (pre-existing files) or 4 spaces (new files)
|
||||
au BufRead,BufNewFile *.py,*pyw set shiftwidth=4
|
||||
au BufRead,BufNewFile *.py,*.pyw set expandtab
|
||||
fu Select_c_style()
|
||||
if search('^\t', 'n', 150)
|
||||
set shiftwidth=8
|
||||
set noexpandtab
|
||||
el
|
||||
set shiftwidth=4
|
||||
set expandtab
|
||||
en
|
||||
endf
|
||||
au BufRead,BufNewFile *.c,*.h call Select_c_style()
|
||||
au BufRead,BufNewFile Makefile* set noexpandtab
|
||||
|
||||
" Use the below highlight group when displaying bad whitespace is desired.
|
||||
highlight BadWhitespace ctermbg=red guibg=red
|
||||
|
||||
" Display tabs at the beginning of a line in Python mode as bad.
|
||||
au BufRead,BufNewFile *.py,*.pyw match BadWhitespace /^\t\+/
|
||||
" Make trailing whitespace be flagged as bad.
|
||||
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/
|
||||
|
||||
" Wrap text after a certain number of characters
|
||||
" Python: 79
|
||||
" C: 79
|
||||
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h set textwidth=79
|
||||
|
||||
" Turn off settings in 'formatoptions' relating to comment formatting.
|
||||
" - c : do not automatically insert the comment leader when wrapping based on
|
||||
" 'textwidth'
|
||||
" - o : do not insert the comment leader when using 'o' or 'O' from command mode
|
||||
" - r : do not insert the comment leader when hitting <Enter> in insert mode
|
||||
" Python: not needed
|
||||
" C: prevents insertion of '*' at the beginning of every line in a comment
|
||||
au BufRead,BufNewFile *.c,*.h set formatoptions-=c formatoptions-=o formatoptions-=r
|
||||
|
||||
" Use UNIX (\n) line endings.
|
||||
" Only used for new files so as to not force existing files to change their
|
||||
" line endings.
|
||||
" Python: yes
|
||||
" C: yes
|
||||
au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix
|
||||
|
||||
|
||||
" ----------------------------------------------------------------------------
|
||||
" The following section contains suggested settings. While in no way required
|
||||
" to meet coding standards, they are helpful.
|
||||
|
||||
" Set the default file encoding to UTF-8: ``set encoding=utf-8``
|
||||
|
||||
" Puts a marker at the beginning of the file to differentiate between UTF and
|
||||
" UCS encoding (WARNING: can trick shells into thinking a text file is actually
|
||||
" a binary file when executing the text file): ``set bomb``
|
||||
|
||||
" For full syntax highlighting:
|
||||
"``let python_highlight_all=1``
|
||||
"``syntax on``
|
||||
|
||||
" Automatically indent based on file type: ``filetype indent on``
|
||||
" Keep indentation level from previous line: ``set autoindent``
|
||||
|
||||
" Folding based on indentation: ``set foldmethod=indent``
|
|
@ -3,7 +3,6 @@
|
|||
"
|
||||
|
||||
source ~/.vim/theme.conf
|
||||
source ~/.vim/source/python
|
||||
|
||||
set autoindent
|
||||
set conceallevel=2
|
||||
|
@ -13,7 +12,6 @@ set linebreak
|
|||
set mouse=a
|
||||
set nocompatible
|
||||
set number
|
||||
set omnifunc=ale#completion#OmniFunc
|
||||
set path+=**
|
||||
set relativenumber
|
||||
set scrolloff=3
|
||||
|
@ -73,14 +71,12 @@ endif
|
|||
|
||||
" PLUGINS --------------------------------------------------------------- {{{
|
||||
|
||||
call plug#begin('~/.vim/plugins')
|
||||
call plug#begin()
|
||||
|
||||
Plug 'catppuccin/vim', { 'as': 'catppuccin' }
|
||||
Plug 'dense-analysis/ale'
|
||||
Plug 'NerdyPepper/statix'
|
||||
Plug 'prabirshrestha/vim-lsp'
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
Plug 'vifm/vifm.vim'
|
||||
Plug 'catppuccin/vim', { 'as': 'catppuccin' }
|
||||
Plug 'NerdyPepper/statix'
|
||||
|
||||
call plug#end()
|
||||
|
||||
|
|
|
@ -30,9 +30,8 @@
|
|||
"name": "keep",
|
||||
"position": "top",
|
||||
"height": 25,
|
||||
"modules-left": ["sway/mode", "keyboard-state"],
|
||||
"modules-left": ["sway/mode"],
|
||||
"modules-center": ["clock"],
|
||||
"modules-right": ["privacy"],
|
||||
|
||||
"include": [
|
||||
// Import modules (!)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"modules-left": [
|
||||
"idle_inhibitor",
|
||||
"mpris"
|
||||
"custom/media"
|
||||
],
|
||||
"modules-center": [
|
||||
"sway/workspaces"
|
||||
|
|
|
@ -1,17 +1,21 @@
|
|||
{
|
||||
"modules-left": [
|
||||
"modules-left": [
|
||||
"sway/workspaces",
|
||||
"custom/scratchpad-indicator",
|
||||
"mpris",
|
||||
"group/system",
|
||||
"idle_inhibitor",
|
||||
"custom/light-dark-toggle",
|
||||
"custom/night-light-toggle",
|
||||
"custom/toggle-notifications",
|
||||
"custom/media"
|
||||
],
|
||||
"modules-right": [
|
||||
"group/hardware",
|
||||
"modules-right": [
|
||||
"memory",
|
||||
"cpu",
|
||||
"temperature",
|
||||
"custom/sep",
|
||||
"bluetooth",
|
||||
"network",
|
||||
"pulseaudio",
|
||||
"battery",
|
||||
"bluetooth",
|
||||
"network",
|
||||
"pulseaudio",
|
||||
"battery",
|
||||
"custom/sep",
|
||||
"tray"
|
||||
]
|
||||
|
|
131
stow/waybar/.config/waybar/mediaplayer.py
Executable file
131
stow/waybar/.config/waybar/mediaplayer.py
Executable file
|
@ -0,0 +1,131 @@
|
|||
#!/usr/bin/env python3
|
||||
# From:
|
||||
# https://github.com/Alexays/Waybar/blob/master/resources/custom_modules/mediaplayer.py
|
||||
|
||||
import argparse
|
||||
import logging
|
||||
import sys
|
||||
import signal
|
||||
import gi
|
||||
import json
|
||||
gi.require_version('Playerctl', '2.0')
|
||||
from gi.repository import Playerctl, GLib
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def write_output(text, player):
|
||||
logger.info('Writing output')
|
||||
|
||||
output = {'text': text,
|
||||
'class': 'custom-' + player.props.player_name,
|
||||
'alt': player.props.player_name}
|
||||
|
||||
sys.stdout.write(json.dumps(output) + '\n')
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
def on_play(player, status, manager):
|
||||
logger.info('Received new playback status')
|
||||
on_metadata(player, player.props.metadata, manager)
|
||||
|
||||
|
||||
def on_metadata(player, metadata, manager):
|
||||
logger.info('Received new metadata')
|
||||
track_info = ''
|
||||
|
||||
if player.props.player_name == 'spotify' and \
|
||||
'mpris:trackid' in metadata.keys() and \
|
||||
':ad:' in player.props.metadata['mpris:trackid']:
|
||||
track_info = 'AD PLAYING'
|
||||
elif player.get_artist() != '' and player.get_title() != '':
|
||||
track_info = '{artist} - {title}'.format(artist=player.get_artist(),
|
||||
title=player.get_title())
|
||||
else:
|
||||
track_info = player.get_title()
|
||||
|
||||
if player.props.status != 'Playing' and track_info:
|
||||
track_info = ' ' + track_info
|
||||
write_output(track_info, player)
|
||||
|
||||
|
||||
def on_player_appeared(manager, player, selected_player=None):
|
||||
if player is not None and (selected_player is None or player.name == selected_player):
|
||||
init_player(manager, player)
|
||||
else:
|
||||
logger.debug("New player appeared, but it's not the selected player, skipping")
|
||||
|
||||
|
||||
def on_player_vanished(manager, player):
|
||||
logger.info('Player has vanished')
|
||||
sys.stdout.write('\n')
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
def init_player(manager, name):
|
||||
logger.debug('Initialize player: {player}'.format(player=name.name))
|
||||
player = Playerctl.Player.new_from_name(name)
|
||||
player.connect('playback-status', on_play, manager)
|
||||
player.connect('metadata', on_metadata, manager)
|
||||
manager.manage_player(player)
|
||||
on_metadata(player, player.props.metadata, manager)
|
||||
|
||||
|
||||
def signal_handler(sig, frame):
|
||||
logger.debug('Received signal to stop, exiting')
|
||||
sys.stdout.write('\n')
|
||||
sys.stdout.flush()
|
||||
# loop.quit()
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def parse_arguments():
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
# Increase verbosity with every occurrence of -v
|
||||
parser.add_argument('-v', '--verbose', action='count', default=0)
|
||||
|
||||
# Define for which player we're listening
|
||||
parser.add_argument('--player')
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main():
|
||||
arguments = parse_arguments()
|
||||
|
||||
# Initialize logging
|
||||
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG,
|
||||
format='%(name)s %(levelname)s %(message)s')
|
||||
|
||||
# Logging is set by default to WARN and higher.
|
||||
# With every occurrence of -v it's lowered by one
|
||||
logger.setLevel(max((3 - arguments.verbose) * 10, 0))
|
||||
|
||||
# Log the sent command line arguments
|
||||
logger.debug('Arguments received {}'.format(vars(arguments)))
|
||||
|
||||
manager = Playerctl.PlayerManager()
|
||||
loop = GLib.MainLoop()
|
||||
|
||||
manager.connect('name-appeared', lambda *args: on_player_appeared(*args, arguments.player))
|
||||
manager.connect('player-vanished', on_player_vanished)
|
||||
|
||||
signal.signal(signal.SIGINT, signal_handler)
|
||||
signal.signal(signal.SIGTERM, signal_handler)
|
||||
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
|
||||
|
||||
for player in manager.props.player_names:
|
||||
if arguments.player is not None and arguments.player != player.name:
|
||||
logger.debug('{player} is not the filtered player, skipping it'
|
||||
.format(player=player.name)
|
||||
)
|
||||
continue
|
||||
|
||||
init_player(manager, player)
|
||||
|
||||
loop.run()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
|
@ -47,6 +47,19 @@
|
|||
"tooltip-format": "Launch an application"
|
||||
},
|
||||
|
||||
"custom/media": {
|
||||
"escape": true,
|
||||
"exec": "~/.config/waybar/mediaplayer.py 2> /dev/null",
|
||||
"format": "{icon} {}",
|
||||
"format-icons": {
|
||||
"default": "\uf51f",
|
||||
"spotify": "\uf1bc"
|
||||
},
|
||||
"max-length": 40,
|
||||
"on-click": "playerctl play-pause",
|
||||
"return-type": "json"
|
||||
},
|
||||
|
||||
"custom/light-dark-toggle": {
|
||||
"on-click": "bash ${SCRIPT_DIR}/toggle-light-dark.sh",
|
||||
"tooltip-format": "Toggle between light and dark mode",
|
||||
|
@ -58,52 +71,7 @@
|
|||
"on-click": "bash ${SCRIPT_DIR}/sunset.sh",
|
||||
"tooltip-format": "Toggle night-light on or off",
|
||||
"format": "\uf0eb ",
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Toggle night-light on or off",
|
||||
},
|
||||
|
||||
"custom/scratchpad-indicator": {
|
||||
"interval": 3,
|
||||
"return-type": "json",
|
||||
"exec": "swaymsg -t get_tree | jq --unbuffered --compact-output '(recurse(.nodes[]) | select(.name == \"__i3_scratch\") | .focus) as $scratch_ids | [.. | (.nodes? + .floating_nodes?) // empty | .[] | select(.id |IN($scratch_ids[]))] as $scratch_nodes | if ($scratch_nodes|length) > 0 then { text: \"\\($scratch_nodes | length)\", tooltip: $scratch_nodes | map(\"\\(.app_id // .window_properties.class) (\\(.id)): \\(.name)\") | join(\"\\n\") } else empty end'",
|
||||
"format": "{} \uf2d2",
|
||||
"on-click": "exec swaymsg 'scratchpad show'",
|
||||
"on-click-right": "exec swaymsg 'move scratchpad'"
|
||||
},
|
||||
|
||||
"custom/system-lock": {
|
||||
"format": "\uf09c",
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Lock device",
|
||||
"on-click": "swaylock -f"
|
||||
},
|
||||
|
||||
"custom/system-sleep": {
|
||||
"format": "\uf186",
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Put device to sleep",
|
||||
"on-click": "swaylock -f; systemctl suspend"
|
||||
},
|
||||
|
||||
"custom/system-hibernate": {
|
||||
"format": "\uf2dc",
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Hibernate device",
|
||||
"on-click": "swaylock -f; systemctl hibernate"
|
||||
},
|
||||
|
||||
"custom/system-reboot": {
|
||||
"format": "\uf0e2",
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Reboot device",
|
||||
"on-click": "systemctl reboot"
|
||||
},
|
||||
|
||||
"custom/system-shutdown": {
|
||||
"format": "\uf011",
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Shutdown device",
|
||||
"on-click": "systemctl poweroff -i"
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
"custom/toggle-notifications": {
|
||||
|
@ -115,45 +83,10 @@
|
|||
|
||||
"cpu": {
|
||||
"format": "{usage}% \uf2db",
|
||||
"on-click": "foot -e htop",
|
||||
"on-click": "kitty -e htop",
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
"group/hardware": {
|
||||
"orientation": "inherit",
|
||||
"modules": [
|
||||
"power-profiles-daemon",
|
||||
"memory",
|
||||
"cpu",
|
||||
"temperature",
|
||||
"custom/system-shutdown",
|
||||
"custom/system-reboot",
|
||||
"custom/system-hibernate",
|
||||
"custom/system-sleep",
|
||||
"custom/system-lock",
|
||||
],
|
||||
"drawer": {
|
||||
"transition-duration": 500,
|
||||
"transition-left-to-right": false,
|
||||
"children-class": "drawer-child",
|
||||
},
|
||||
},
|
||||
|
||||
"group/system": {
|
||||
"orientation": "inherit",
|
||||
"modules": [
|
||||
"idle_inhibitor",
|
||||
"custom/light-dark-toggle",
|
||||
"custom/night-light-toggle",
|
||||
"custom/toggle-notifications",
|
||||
],
|
||||
"drawer": {
|
||||
"transition-duration": 500,
|
||||
"tansition-left-to-right": true,
|
||||
"children-class": "drawer-child",
|
||||
},
|
||||
},
|
||||
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
|
@ -163,44 +96,11 @@
|
|||
"tooltip": false
|
||||
},
|
||||
|
||||
"keyboard-state": {
|
||||
"format": {
|
||||
"capslock": "{icon}",
|
||||
},
|
||||
"format-icons": {
|
||||
"locked": "\uf023",
|
||||
"unlocked": ""
|
||||
},
|
||||
"numlock": false,
|
||||
"capslock": true,
|
||||
"scrollock": false,
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"format": "{}% \uf1c0",
|
||||
"on-click": "kitty -e zenith"
|
||||
},
|
||||
|
||||
"mpris": {
|
||||
// "ignored-players": ["firefox"]
|
||||
"format": "{player_icon} {dynamic}",
|
||||
"format-paused": "{status_icon} <i>{dynamic}</i>",
|
||||
"tooltip-format": "{player} ({status}) {title} - {artist} - {album}",
|
||||
"player-icons": {
|
||||
"default": "\uf51f",
|
||||
"spotify": "\uf1bc",
|
||||
"mpv": "🎵"
|
||||
},
|
||||
"status-icons": {
|
||||
"paused": "⏸"
|
||||
},
|
||||
"dynamic-order": [
|
||||
"title",
|
||||
"artist"
|
||||
],
|
||||
"dynamic-len": 40,
|
||||
},
|
||||
|
||||
"network": {
|
||||
"format-disconnected": "\uf127",
|
||||
"format-ethernet": "\uf6ff {ifname}: {ipadds}/{cidr}",
|
||||
|
@ -228,37 +128,7 @@
|
|||
// "0:¯\\_(ツ)_/¯": []
|
||||
// }
|
||||
},
|
||||
|
||||
"power-profiles-daemon": {
|
||||
"format": "{icon}",
|
||||
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
|
||||
"tooltip": true,
|
||||
"format-icons": {
|
||||
"default": "",
|
||||
"performance": "",
|
||||
"balanced": "",
|
||||
"power-saver": ""
|
||||
}
|
||||
},
|
||||
|
||||
"privacy": {
|
||||
"icon-spacing": 4,
|
||||
"icon-size": 18,
|
||||
"transition-duration": 250,
|
||||
"modules": [
|
||||
{
|
||||
"type": "screenshare",
|
||||
"tooltip": true,
|
||||
"tooltip-icon-size": 18,
|
||||
},
|
||||
{
|
||||
"type": "audio-in",
|
||||
"tooltip": true,
|
||||
"tooltip-icon-size": 18,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{volume}% {icon}{format_source}",
|
||||
"format-muted": "\uf6a9{format_source}",
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
@define-color accent #00897b;
|
||||
|
||||
window#waybar {
|
||||
font-family: letter, "Font Awesome 6 Free", font-awesome, monospace;
|
||||
font-family: font-awesome, letter, monospace;
|
||||
font-size: 13px;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
transition-property: background-color;
|
||||
|
@ -49,31 +49,10 @@ window#waybar {
|
|||
}
|
||||
|
||||
/* All modules individually. */
|
||||
#backlight,
|
||||
#battery,
|
||||
#bluetooth,
|
||||
#clock,
|
||||
#cpu,
|
||||
#custom-browser,
|
||||
#custom-light-dark-toggle,
|
||||
#custom-night-light-toggle,
|
||||
#custom-system-lock, #custom-system-sleep, #custom-system-hibernate, #custom-system-reboot, #custom-system-shutdown,
|
||||
#custom-toggle-notifications,
|
||||
#disk,
|
||||
#group-hardware,
|
||||
#group-system,
|
||||
#idle_inhibitor,
|
||||
#keyboard-state,
|
||||
#memory,
|
||||
#mode,
|
||||
#mpd,
|
||||
#mpris,
|
||||
#network,
|
||||
#power-profiles-daemon,
|
||||
#privacy-item.audio-in, #privacy-item.audio-out, #privacy-item.screenshare,
|
||||
#pulseaudio,
|
||||
#temperature,
|
||||
#tray {
|
||||
#backlight, #battery, #bluetooth, #clock, #cpu,
|
||||
#custom-browser, #custom-media, #custom-light-dark-toggle, #custom-night-light-toggle, #custom-toggle-notifications,
|
||||
#disk, #idle_inhibitor, #memory, #mode, #mpd, #network,
|
||||
#pulseaudio, #temperature, #tray {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
|
@ -122,16 +101,17 @@ label:focus {
|
|||
opacity: 0.6;
|
||||
}
|
||||
|
||||
#mpris {
|
||||
#custom-media {
|
||||
color: #2a5c45;
|
||||
background-color: #66cc99;
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
#mpris.spotify {
|
||||
#custom-media.custom-spotify {
|
||||
background-color: #66cc99;
|
||||
}
|
||||
|
||||
#mpris.vlc {
|
||||
#custom-media.custom-vlc {
|
||||
background-color: #ffa000;
|
||||
}
|
||||
|
||||
|
@ -154,12 +134,5 @@ label:focus {
|
|||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#privacy-item.audio-in,
|
||||
#privacy-item.audio-out,
|
||||
#privacy-item.screenshare {
|
||||
background-color: #ffaa01;
|
||||
color: #2d3436;
|
||||
}
|
||||
|
||||
@import "sharp.css";
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ add-zsh-hook precmd loadgit
|
|||
# Backup line(s)
|
||||
# PROMPT='%(!.%B%F{red}.%B%F{green}%n@)%m %F{blue}%(!.%1~.%~) ${vcs_info_msg_0_}%F{blue}%(!.#.$)%k%b%f '
|
||||
# PROMPT='%(!.%B%F{red}.%B%F{green}%n@)%m %{$reset_color%}%F{cyan}%c %B${vcs_info_msg_0_}%F{green}%(!.#.$)%k%b%f '
|
||||
PROMPT='%(!.%B%F{red}%m .)%{$reset_color%}%F{cyan}%c %B${vcs_info_msg_0_}%(?.%F{green}%(!.#.$).%F{red}%?)%k%b%f '
|
||||
PROMPT='%(!.%B%F{red}%m .)%{$reset_color%}%F{cyan}%c %B${vcs_info_msg_0_}%F{green}%(!.#.$)%k%b%f '
|
||||
|
||||
# PROMPT='%{$fg_bold[green]%}[%n@%m%{$reset_color%} %{$fg[cyan]%}%c%{$reset_color%}$(git_prompt_info)%{$fg_bold[green]%}]%{$reset_color%}$ '
|
||||
|
||||
|
|
|
@ -6,8 +6,6 @@ fpath+="$HOME/.zsh/plugins/cmdtime"
|
|||
plugins=(dirhistory git screen)
|
||||
ZSH_CUSTOM="$HOME/.oh-my-zsh"
|
||||
ZSH_THEME="tdpeuter"
|
||||
# Disable automatically updating
|
||||
zstyle ':omz:update' mode disabled
|
||||
source $ZSH_CUSTOM/oh-my-zsh.sh
|
||||
|
||||
if [[ -f "$HOME/.zsh/plugins/cmdtime/cmdtime.plugin.zsh" ]]; then
|
||||
|
|
Loading…
Reference in a new issue