Compare commits

..

24 commits
main ... sync

Author SHA1 Message Date
aeb8f52d6d
Sync 2024-11-10 20:18:46 +01:00
31a4c4060a
chore(docker): Add users to group 2024-10-25 16:17:58 +02:00
ade31510a8
chore: Refresh pkgs 2024-10-24 16:02:38 +02:00
b25f1f9f4b
feat(vim): Add Coq support 2024-10-24 15:29:38 +02:00
bdef46f0b2
chore: Upstream option renames 2024-10-24 15:28:36 +02:00
531fae0bb0
chore(sway): Add secondary terminal keybind 2024-10-19 14:46:38 +02:00
d1379cdf99
feat(ssh): Add Nextcloud secrets 2024-10-19 14:46:21 +02:00
0fa8782abb
[virtualbox] Remove custom pkg 2024-10-13 17:54:49 +02:00
58f2686097
[swaylock] Set default black background.
Avoid flashbangs
2024-10-07 09:48:40 +02:00
412932d20d
[sway] Switch fr to be keyboard layout 2024-09-29 20:15:09 +02:00
c9c36843ae
[swaylock] Configure keyboard layout 2024-09-29 13:08:37 +02:00
b14b9392fe
[waybar] chore: Hide power management under battery 2024-09-25 18:43:21 +02:00
0ef21309f4
[waybar] fix: Reverse volume scroll 2024-09-25 18:42:31 +02:00
8ad66eab07
[waybar] chore: Fix commas 2024-09-25 18:41:51 +02:00
0435852106
[waybar] feat: Add keyboard-layout toggle 2024-09-25 18:40:54 +02:00
5fdf52e0dc
[remEYEnder] Add icon 2024-09-19 15:56:13 +02:00
dc8fa78220
Clean up NixFat hardware config 2024-09-19 15:31:50 +02:00
b27b60a01b
[zsh] Add common aliases 2024-09-19 15:30:17 +02:00
a113c47eac
[remEYEnder] Add module 2024-09-19 15:29:55 +02:00
4c8d6dfc27
[sway] Add package for mirroring 2024-09-05 17:26:10 +02:00
8f5c38f525
[firefox] Add NixOS Options search 2024-09-05 17:12:54 +02:00
40f4ac6e12
[sway] Add ignore mode 2024-09-05 17:11:52 +02:00
f9b9424b29 colors 2024-06-21 16:11:01 +02:00
749e18793d
[nvidia] Add comments 2024-06-21 08:56:09 +02:00
42 changed files with 10833 additions and 414 deletions

177
colors.sh Normal file
View file

@ -0,0 +1,177 @@
# tdpeuter color schemes
# The goal is to offer light and dark theme that is easy on the eyes,
# whilst also being unique and defining.
###############################
# tdpeuter-light color scheme #
###############################
# 171717 # Foreground
# FAFAFA # Daisy (Background)
# Regular colors (0-7)
# 000000 # Black (0)
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# Bright colors (8-15)
# 000000 # Black (8)
# 9
# 10
# 11
# 12
# 13
# 14
# 15
##############################
# tdpeuter-dark color scheme #
##############################
# FAFAFA # Daisy (Foreground)
printf "\033]10;#FAFAFA\007"
# 171717 # Background
printf "\033]11;#171717\007"
# Regular colors (0-7)
# 242124 # Black 0
printf "\033]4;0;#242124\007"
# B90E0A # Crimson (Red) 1
printf "\033]4;1;#B90E0A\007"
# B2BC68 # Leafy (Green) 2
printf "\033]4;2;#B2BC68\007"
# FFE135 # Banana (Yellow) 3
printf "\033]4;3;#FFE135\007"
# 80A2BE # Icicle (Blue) 4
printf "\033]4;4;#80A2BE\007"
# A45EE5 # Amethyst (Magenta) 5
printf "\033]4;5;#A45EE5\007"
# # (Cyan) 6
printf "\033]4;6;#80A2BE\007"
# FBFCF8 # Pearl (White) 7
printf "\033]4;7;#FBFCF8\007"
# Bright colors (8-15)
# 363636 # Grey-isch (Black) 8
printf "\033]4;8;#363636\007"
# BC544B # Blush (Red) 9
printf "\033]4;9;#BC544B\007"
# A6E3A1 # Lime (Green) 10
printf "\033]4;10;#A6E3A1\007"
# FCF4A3 # Banana (Yellow) 11
printf "\033]4;11;#FCF4A3\007"
# 74C7EC # Sapphire (Blue) 12
printf "\033]4;12;#74C7EC\007"
# B4BEFE # Lavender (Magenta) 13
# #CBA6F7
printf "\033]4;13;#B4BEFE\007"
# # (Cyan) 14
printf "\033]4;14;#74C7EC\007"
# FFFFFF # White 15
printf "\033]4;15;#FFFFFF\007"
# NEW COLORS 20241101
#
# Nr # R G B H S B # Name
# FG # 250 250 250 0 0 98 # Daisy (White)
printf "\033]10;#FAFAFA\007"
# BG # 19 19 19 0 0 7 # -
printf "\033]11;#131313\007"
# Regular colors (0-7)
# Nr # R G B H S B # Name
# 0 # 61 61 61 0 0 24 # - (Black)
printf "\033]4;0;#3D3D3D\007"
# 1 # 186 19 61 345 90 73 # - (Red)
printf "\033]4;1;#BA133D\007"
# 2 # 61 186 19 105 90 73 # - (Green)
printf "\033]4;2;#3DBA13\007"
# 3 # 186 144 19 45 90 73 # - (Yellow)
printf "\033]4;3;#BA9013\007"
# 4 # 19 61 186 225 90 73 # - (Blue)
printf "\033]4;4;#133DBA\007"
# 5 # 144 19 186 285 90 73 # - (Magenta)
printf "\033]4;5;#9013BA\007"
# 6 # 19 186 144 165 90 73 # - (Cyan)
printf "\033]4;6;#13BA90\007"
# 7 # 186 186 186 0 0 73 # - (White)
printf "\033]4;7;#BABABA\007"
# Bright colors (8-15)
# Nr # R G B H S B # Name
# 8 # 122 122 122 0 0 48 # - (Black)
printf "\033]4;8;#363636\007"
# 9 # 250 25 81 345 90 98 # - (Red)
printf "\033]4;9;#FA1951\007"
# 10 # 81 250 25 105 90 98 # - (Green)
printf "\033]4;10;#51FA19\007"
# 11 # 250 194 25 45 90 98 # - (Yellow)
printf "\033]4;11;#FAC219\007"
# 12 # 25 81 250 225 90 98 # - (Blue)
printf "\033]4;12;#1951FA\007"
# 13 # 194 25 250 285 90 98 # - (Magenta)
printf "\033]4;13;#C219FA\007"
# 14 # 25 259 194 165 90 98 # - (Cyan)
printf "\033]4;14;#19FAC2\007"
# 15 # 250 250 250 0 0 98 # - (White)
printf "\033]4;15;#FAFAFA\007"
# BRIGHTER
#
# Nr # R G B H S B # Name
# FG # 250 250 250 0 0 98 # Daisy (White)
printf "\033]11;#FAFAFA\007"
# BG # 19 19 19 0 0 7 # -
printf "\033]10;#131313\007"
# Regular colors (0-7)
# Nr # R G B H S B # Name
# 0 # 61 61 61 0 0 24 # - (Black)
printf "\033]4;0;#3D3D3D\007"
# 1 # 186 19 61 345 90 73 # - (Red)
printf "\033]4;1;#E62E4D\007"
# 2 # 61 186 19 105 90 73 # - (Green)
printf "\033]4;2;#4DE62E\007"
# 3 # 186 144 19 45 90 73 # - (Yellow)
printf "\033]4;3;#E6C72E\007"
# 4 # 19 61 186 225 90 73 # - (Blue)
printf "\033]4;4;#2E4CE6\007"
# 5 # 144 19 186 285 90 73 # - (Magenta)
printf "\033]4;5;#C52DE3\007"
# 6 # 19 186 144 165 90 73 # - (Cyan)
printf "\033]4;6;#2EE6C7\007"
# 7 # 186 186 186 0 0 73 # - (White)
printf "\033]4;7;#BABABA\007"
# Bright colors (8-15)
# Nr # R G B H S B # Name
# 8 # 122 122 122 0 0 48 # - (Black)
printf "\033]4;8;#7A7A7A\007"
# 9 # 250 25 81 345 90 98 # - (Red)
printf "\033]4;9;#FF002B\007"
# 10 # 81 250 25 105 90 98 # - (Green)
printf "\033]4;10;#2BFF00\007"
# 11 # 250 194 25 45 90 98 # - (Yellow)
printf "\033]4;11;#FFd500\007"
# 12 # 25 81 250 225 90 98 # - (Blue)
printf "\033]4;12;#002AFF\007"
# 13 # 194 25 250 285 90 98 # - (Magenta)
printf "\033]4;13;#D400FF\007"
# 14 # 25 259 194 165 90 98 # - (Cyan)
printf "\033]4;14;#00FFC0\007"
# 15 # 250 250 250 0 0 98 # - (White)
printf "\033]4;15;#FAFAFA\007"

View file

@ -1,54 +1,15 @@
{ {
"nodes": { "nodes": {
"devshell": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1713532798,
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
"owner": "numtide",
"repo": "devshell",
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1701680307, "lastModified": 1726560853,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"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=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -64,11 +25,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1716736833, "lastModified": 1726989464,
"narHash": "sha256-rNObca6dm7Qs524O4st8VJH6pZ/Xe1gxl+Rx6mcWYo0=", "narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "a631666f5ec18271e86a5cde998cba68c33d9ac6", "rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -86,11 +47,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1701208414, "lastModified": 1720066371,
"narHash": "sha256-xrQ0FyhwTZK6BwKhahIkUVZhMNk21IEI1nUcWSONtpo=", "narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-github-actions", "repo": "nix-github-actions",
"rev": "93e39cc1a087d65bcf7a132e75a650c44dd2b734", "rev": "622f829f5fe69310a866c8a6cd07e747c44ef820",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -101,11 +62,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1717144377, "lastModified": 1730883749,
"narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=", "narHash": "sha256-mwrFF0vElHJP8X3pFCByJR365Q2463ATp2qGIrDUdlE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "805a384895c696f802a9bf5bf4720f37385df547", "rev": "dba414932936fde69f0606b4f1d87c5bc0003ede",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -116,27 +77,27 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1717265169, "lastModified": 1730602179,
"narHash": "sha256-IITcGd6xpNoyq9SZBigCkv4+qMHSqot0RDPR4xsZ2CA=", "narHash": "sha256-efgLzQAWSzJuCLiCaQUCDu4NudNlHdg2NzGLX5GYaEY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3b1b4895b2c5f9f5544d02132896aeb9ceea77bc", "rev": "3c2f1c4ca372622cb2f9de8016c9a0b1cbd0f37c",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "release-23.11", "ref": "release-24.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1716948383, "lastModified": 1730785428,
"narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=", "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ad57eef4ef0659193044870c731987a6df5cf56b", "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -155,15 +116,15 @@
"nixpkgs" "nixpkgs"
], ],
"poetry2nix": "poetry2nix", "poetry2nix": "poetry2nix",
"systems": "systems_3", "systems": "systems_2",
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1701455376, "lastModified": 1724283233,
"narHash": "sha256-FMLrMdi6JY7ZfqV5XnNj64jnDcGKznKZLn7O6OMO3u0=", "narHash": "sha256-XMPn6YHwFOJCGLE9M5F3AEFKA0u+maf8CpIEWmvaQTQ=",
"owner": "ThinkChaos", "owner": "ThinkChaos",
"repo": "openconnect-sso", "repo": "openconnect-sso",
"rev": "20c0015c4264c72cc19ac272de0dc534309bd21b", "rev": "94f1ddfef1662d56ede0a093bcfc3d23156bc1a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -197,11 +158,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1701105783, "lastModified": 1721039874,
"narHash": "sha256-5IOI0xXGbhAkUZNNcPId48V78Q+/JlW0hzlif0zxRmM=", "narHash": "sha256-XANsG9GYHip8pxZpbqKf/YGv8tIa0xTh289Y+WNBNfw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "poetry2nix", "repo": "poetry2nix",
"rev": "0b2bff39e9bd4e6db3208e09c276ca83a063b370", "rev": "d11c01e58587e5f21037ed6477465a7f26a32e27",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -212,8 +173,7 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"devshell": "devshell", "flake-utils": "flake-utils",
"flake-utils": "flake-utils_2",
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
@ -230,11 +190,11 @@
"nixpkgs-stable": "nixpkgs-stable" "nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1717297459, "lastModified": 1730883027,
"narHash": "sha256-cZC2f68w5UrJ1f+2NWGV9Gx0dEYmxwomWN2B0lx0QRA=", "narHash": "sha256-pvXMOJIqRW0trsW+FzRMl6d5PbsM4rWfD5lcKCOrrwI=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "ab2a43b0d21d1d37d4d5726a892f714eaeb4b075", "rev": "c5ae1e214ff935f2d3593187a131becb289ea639",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -273,21 +233,6 @@
"type": "github" "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": { "treefmt-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -296,11 +241,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1699786194, "lastModified": 1721769617,
"narHash": "sha256-3h3EH1FXQkIeAuzaWB+nK0XK54uSD46pp+dMD3gAcB4=", "narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "e82f32aa7f06bbbd56d7b12186d555223dc399d1", "rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -316,11 +261,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1715533576, "lastModified": 1722363685,
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=", "narHash": "sha256-XCf2PIAT6lH7BwytgioPmVf/wkzXjSKScC4KzcZgb64=",
"owner": "gytis-ivaskevicius", "owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus", "repo": "flake-utils-plus",
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f", "rev": "6b10f51ff73a66bb29f3bc8151a59d217713f496",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -5,17 +5,13 @@
nixpkgs.url = "nixpkgs/nixos-24.05"; nixpkgs.url = "nixpkgs/nixos-24.05";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
devshell = {
url = "github:numtide/devshell";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-24.05"; url = "github:nix-community/home-manager/release-24.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
openconnect-sso = { openconnect-sso = {
url = github:ThinkChaos/openconnect-sso/fix/nix-flake; url = "github:ThinkChaos/openconnect-sso/fix/nix-flake";
inputs = { inputs = {
flake-utils.follows = "utils"; flake-utils.follows = "utils";
nixpkgs.follows = "nixpkgs"; nixpkgs.follows = "nixpkgs";
@ -33,7 +29,7 @@
outputs = inputs@{ outputs = inputs@{
self, nixpkgs, nixpkgs-unstable, self, nixpkgs, nixpkgs-unstable,
devshell, flake-utils, home-manager, openconnect-sso, sops-nix, utils, flake-utils, home-manager, openconnect-sso, sops-nix, utils,
... }: ... }:
let let
system = "x86_64-linux"; system = "x86_64-linux";

View file

@ -75,9 +75,9 @@
networking.hostName = "Tibo-NixDesk"; networking.hostName = "Tibo-NixDesk";
services.xserver = { services.xserver.xkb = {
layout = "us"; layout = "us";
xkbVariant = "altgr-intl"; variant = "altgr-intl";
}; };
system.stateVersion = "24.05"; system.stateVersion = "24.05";

View file

@ -19,7 +19,7 @@
networking = { networking = {
networkmanager.enable = true; networkmanager.enable = true;
# openconnect-sso.enable = true; openconnect-sso.enable = true;
}; };
nix = { nix = {
@ -80,6 +80,7 @@
programs = { programs = {
zsh.enable = true; zsh.enable = true;
steam.enable = true;
}; };
hardware.bluetooth = { hardware.bluetooth = {
@ -87,7 +88,10 @@
powerOnBoot = false; powerOnBoot = false;
}; };
networking.hostName = "Tibo-NixFat"; networking = {
hostName = "Tibo-NixFat";
networkmanager.wifi.powersave = true;
};
services = { services = {
# Handle the laptop lid switch as follows: # Handle the laptop lid switch as follows:
@ -105,6 +109,8 @@
# Touchpad # Touchpad
libinput.enable = true; libinput.enable = true;
thermald.enable = true;
}; };
system.stateVersion = "24.05"; system.stateVersion = "24.05";

View file

@ -8,21 +8,32 @@
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot = {
boot.initrd.kernelModules = [ ]; initrd = {
boot.kernelModules = [ "kvm-intel" ]; availableKernelModules = [
boot.extraModulePackages = [ ]; "xhci_pci"
"nvme"
fileSystems."/" = { "usb_storage"
device = "/dev/disk/by-label/NIX-ROOT"; "sd_mod"
fsType = "ext4"; "rtsx_pci_sdmmc"
];
kernelModules = [ ];
luks.devices."luks-c21cb4a4-f618-43af-bc0c-e8be74fe3b81".device = "/dev/disk/by-uuid/c21cb4a4-f618-43af-bc0c-e8be74fe3b81";
};
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
}; };
boot.initrd.luks.devices."luks-c21cb4a4-f618-43af-bc0c-e8be74fe3b81".device = "/dev/disk/by-uuid/c21cb4a4-f618-43af-bc0c-e8be74fe3b81"; fileSystems = {
"/" = {
device = "/dev/disk/by-label/NIX-ROOT";
fsType = "ext4";
};
fileSystems."/boot/efi" = { "/boot/efi" = {
device = "/dev/disk/by-label/NIX-BOOT"; device = "/dev/disk/by-label/NIX-BOOT";
fsType = "vfat"; fsType = "vfat";
};
}; };
swapDevices = [ swapDevices = [

View file

@ -65,14 +65,17 @@ in {
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
environment.systemPackages = (with pkgs; [ environment.systemPackages = (with pkgs; [
# Window manager related
dbus-sway-environment dbus-sway-environment
configure-gtk configure-gtk
wayland wayland
xdg-utils # Open with default program xdg-utils # Open with default program
glib # gsettings glib # gsettings
wl-clipboard wl-clipboard
wl-mirror # Mirror an output
wdisplays # Tool to configure displays wdisplays # Tool to configure displays
# Desktop Environment related
brightnessctl brightnessctl
dunst dunst
libnotify libnotify
@ -105,6 +108,8 @@ in {
source-han-serif-japanese source-han-serif-japanese
]; ];
hardware.opengl.enable = true;
security.polkit.enable = true; security.polkit.enable = true;
services = { services = {
@ -139,9 +144,14 @@ in {
extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
}; };
programs.sway = { programs = {
enable = true; sway = {
wrapperFeatures.gtk = true; enable = true;
package = pkgs.swayfx;
wrapperFeatures.gtk = true;
};
waybar.enable = true;
}; };
sisyphus.users.wantedGroups = [ sisyphus.users.wantedGroups = [

View file

@ -42,9 +42,12 @@ in {
driSupport = true; driSupport = true;
driSupport32Bit = true; driSupport32Bit = true;
}; };
nvidia = { nvidia = {
# Use the NVidia open source kernel module
open = false; open = false;
package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;
# Modesetting is required.
modesetting.enable = true; modesetting.enable = true;
nvidiaSettings = cfg.gui-settings; nvidiaSettings = cfg.gui-settings;
powerManagement = { powerManagement = {

View file

@ -25,11 +25,17 @@ in {
]; ];
# Send a notification if the YubiKey is waiting for touch. # Send a notification if the YubiKey is waiting for touch.
systemd.user.services.yubikey-touch-detector = { systemd.services.yubikey-touch-detector = {
enable = true; enable = true;
description = "Detects when your YubiKey is waiting for a touch"; description = "Detects when your YubiKey is waiting for a touch";
path = with pkgs; [ yubikey-touch-detector ]; path = with pkgs; [
script = ''exec yubikey-touch-detector --notify''; gnupg
yubikey-touch-detector
];
wantedBy = [
"graphical-session.target"
];
script = ''exec yubikey-touch-detector --libnotify'';
environment.YUBIKEY_TOUCH_DETECTOR_LIBNOTIFY = "true"; environment.YUBIKEY_TOUCH_DETECTOR_LIBNOTIFY = "true";
}; };
}; };

View file

@ -5,6 +5,7 @@
./openssh ./openssh
./pipewire ./pipewire
./printing ./printing
./remEYEnder
./tailscale ./tailscale
]; ];
} }

View file

@ -10,7 +10,7 @@ in {
printing.enable = true; printing.enable = true;
avahi = { avahi = {
enable = true; enable = true;
nssmdns = true; nssmdns4 = true;
openFirewall = true; openFirewall = true;
}; };
}; };

View file

@ -0,0 +1,35 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.services.remEYEnder;
icon = ./vecteezy_eyes-line-icon-vector-isolated_13932670.jpg;
in {
options.sisyphus.services.remEYEnder.enable = lib.mkEnableOption "Eye reminder";
config = lib.mkIf cfg.enable {
systemd.user = {
services.remEYEnder = {
enable = true;
description = "Send an eye reminder";
serviceConfig.Type = "oneshot";
script = ''
# Display reminder for 20 seconds.
${pkgs.libnotify}/bin/notify-send -t 20000 --icon=${icon} "RemEYEnder" "Look away from your screen :)"
'';
};
timers.remEYEnder = {
enable = true;
description = "Timer for remEYEnders, runs every 20 minutes.";
wantedBy = [
"timers.target"
];
timerConfig = {
OnActiveSec = "20min";
OnUnitActiveSec = "20min";
Unit = "remEYEnder.service";
};
};
};
};
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View file

@ -12,6 +12,11 @@ in {
enableOnBoot = false; enableOnBoot = false;
}; };
# Updated version of deprecated enableNvidia.
hardware.nvidia-container-toolkit.enable = true; hardware.nvidia-container-toolkit.enable = true;
sisyphus.users.wantedGroups = [
"docker"
];
}; };
} }

View file

@ -2,17 +2,6 @@
let let
cfg = config.sisyphus.virtualisation.virtualbox; cfg = config.sisyphus.virtualisation.virtualbox;
# I like to override the virtualbox package because it is frequently
# and rebuilds take quite long.
inherit (pkgs) fetchurl;
version = "7.0.10";
virtualbox-override = pkgs.virtualbox.overrideAttrs (oldAttrs: {
src = fetchurl {
url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
sha256 = "0b1e6d8b7f87d017c7fae37f80586acff04f799ffc1d51e995954d6415dee371";
};
});
in { in {
options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox"; options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox";
@ -21,7 +10,6 @@ in {
host = { host = {
enable = true; enable = true;
enableExtensionPack = true; enableExtensionPack = true;
package = virtualbox-override;
}; };
guest = { guest = {
enable = true; enable = true;

View file

@ -0,0 +1,27 @@
HomeLab:
Gitea:
ssh: ENC[AES256_GCM,data:+H9qhfOg5WlTB7pihvbJ9omY/zLTAADe8KzI4fbdZ7NuaM0auC95AIQqhwNNCZNglg9UGOVL662pY7dNhbQ/2iCLPHSPgFFXf3fx1moRRcYYQzoJxsgxp19FZQeGNJ0qfRf72xYbZQZKslyHQmcqDieoVTyhaLqTfgC8MQ/UZofw/ortmgME7z51rGV5sXXMjxpJpHz9JxiPwQEL0ABWDAeCqBVBzlqqwdmfKEdkcR4l3USHfH1iNF5XQ5V26I+UGDOyoixt1c/BXzD9xzKI7MUDoRz+qfC6C62LIlEgqZY5tWg+tVZnqobakxwH6d8pXtQ7vaIREEP0LqQMkrNcK8X+cDRteToQ1fcxtN1V+JfZSa9pVC+iGgvmSZ00q4bnOgTmgO9IZ80TvOR4bHpRhjM5l4JMbLBv2jqY1zeUx/5L3WNuYIm9sL5mWXkV/RAD8WCemNSWdKbGsvByEUeiFcxczL/vQ6y3fi+ntmXUgeXVy5zVNkNlYbqd+DemBmwZQb9D1T5T97i2ChciYb3/ON1NObja/bt0PTQa,iv:hIbwsPcDSfgDItlvFFy0vCjuQWvgoQHBH60v8nTVTNg=,tag:1T/TdTEy98TfgMzYAxfHKA==,type:str]
Hugo:
ssh: ENC[AES256_GCM,data:Tfuba25e4hJ8Ovl1IdVtDvg0L0sCc9sYTXstRg89IAUzwv/1u8mxdj9ka6ZKaSQr2QUaNWs0BoPV36O4bI2hTwoqhUarhXXZNnJKHtd8xBu/+kfMSOMGa5qD9V9m3L5OFdt+gdwhJxemeQNkvN0Vhsu4DJFPZRPmGflJ2HVRYaRW4AsI+JPqiWSEeKz40f3PQPJ2h26gF+pADmPwtEfcUGZdGnJXUsiYMC0aBEWWxyAgBgj5W+Nbe+OCopEX1qyRcR8qO+LONjuC0b5hcGeOXjWj/d1FnBfxDHeoxRGhNCo8TUk0ap1mpSAttdr55/C51duQfeV09Iow4nzUR2H0jmzojUAjKXXCkBsK6yjIKxW+4+4OKCC9ERz5mDmu5Z+4aFM7CpSquCAnDVFw1Uq9MJqAnSz6AGh29J4LUwMnVNtf+gQwzGyl/C9wE/Svm0UAwP19h6hLcM1rp6bV4xjfSXNDspUkz4Xr3RdPpTI1PemtMZIq8fP64q0FlFZeV62ctl9hCtDVRDo3fG3FUM08fa0OfJpVYjSEAOfC,iv:T8z+P5++cES9Co9d/2tcU0PbxZZM/5x63tcxIjBeQ0I=,tag:AjsulFme64/xEPjgZQFtow==,type:str]
Nextcloud:
ssh: ENC[AES256_GCM,data:aVqa57u9hIOquP367EDj2rlyQWRe3EZv8l5cC+yQQKCri2bN5IFSq8qNemOIcU9ycBnxIyK6gLerJYQQcgzIIARmnfDpbJ9w+EeUL5yvPVJN6FM7oBeaL9mzYRl8aDKr22LhL9YiKAT1nKHESmTb3TZRvuvWJTGzCMRV85ROGxZYVUgG6BjuHEzuTsc4fy3NVPIl7/4ZjPgNNYx+UNsV5xwTejveB/sGblVrHOO74LZXzUWRlQNun5nM3MY3GALzfrPrVIAyGNu37CGachtwxaPOj7vUKZmD/e+XajYVKRJ3v33jrUeI0dDmhuwJj3taoFik6suAyiK3RlDdeWoERR8vqduiyxJnVMs6mNkigzkVtifpwZyQ8vNyG7w1JNPygMYgQzjN43lGVml8cx1lZvcoBzQabjWxcNzhV8gXxoGKvAwUV7ELB6l00rUH+EeI0uU8/IFm9kwmZq42ciM/bRGSGXzo2PYG2OHOiDe5b0nrIlajaRKd+vuuzTtFFU9EwH0GPzERRaoxVK+h9tzcco/REITCE+CVlHSx,iv:bb1X95HK5tT7EJpqqgMOUxw5VO5MuzoYxkPIzR5sEqU=,tag:y2LKHm7czwyuHp7Ea8KiYw==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k
SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz
ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-10-20T07:58:57Z"
mac: ENC[AES256_GCM,data:mmFgjE7rp7fXmPOnETGamHR3kUAguFCNNTQcEnD+uM4xeSp3QcB2g8tkKYaJAjkWWqKRSm9/Iu1NWOr9GWyu4O1h7ppWSvpKawWki6cHpqBl8JOwbx/SZi5bzU1lBtoJyT6hD1aCu9ENOMUkpPY3rKcYwbsRMJpKYsbXymPikcQ=,iv:kPB6ds8c4yc/w7Ny1d3DTyztQF4yTr0NyKgIHEzIKAg=,tag:VTpXRb5HaWDjVB52K7mByw==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1

View file

@ -1,24 +0,0 @@
Hugo:
ssh: ENC[AES256_GCM,data:Qi4YEvG64lJqhISMNtuC0mM02TU5KPpzdgs8x2UJwxAxus4+Aa3nIttkbcbKxtobL7ohKcMFGq7bBdj+s4zbctctknHdjiwj1caDoD7+Fm5H0RWLe7yjt5e4IxRywN8cNF59FfINl2tMutuENOzSucjHIXTKSV/ARZzwhcyZkQy//YvlReUSrUNaNkVM1VtjVILOToAXGzQx5w74eX+9JYV9FtZRTbr/spule+UDDtPZaaiFZmFfE5YjULFPaZJo2iUiirKalPodxfIar9eXzoN+bOQbz2Xys1QHNEt2cwWjERruCsojiyA+XeYFreWEWGggSEXizxv7cS5ab1e9XqtWR+u3Gdy/t1/cjoMBVXuLxQ+BwTlAO8NDgRbW0aq8q5yOsPCjShI/N4EVN5qtMUT1+mYZLCiZPPXbLBIiyqIWea/Ru8iIo7+WoF2iDBgshwnw8+uGDFfwlNh3SAwMSQOcGg06+U17PeU56Q/wqID2lEMDgGfHdqObvMlae1q+Qa9cwrp4xDw5S42NlgVaNcovUav5US5kO43r,iv:xvuRv4sqLRGv9npIVjnGV7zDPzIyS58ZKN2T23BmMZs=,tag:iGnBzgRhREEfKjE/ea5Drw==,type:str]
Gitea:
ssh: ENC[AES256_GCM,data:digqDmnEPg/Zn9Xt7+Z/R9lTBs6CeOgHgIhstWxHnvucwshUO7Zu+l80YPyzAck0pO5YIKML8hjAqj30lYqSPRzG1uRpT7likCy15MqyyQ64U+5PGQRNhybo1eYoqVFYd2sYc5xzkve1b8zCDfxj2mbmRYETYSidHZLaDilq6iKtWWSX+mnTXqJ2gIj+J7pfFBOHskWglnrVdj93AOdpG6cmnvzE7ey8SrMt9t0GzmRFAvjP3slio8NTsI97fu3isF0phGoh8q9tGGRnRMDq3E33zzntT3jawtWiib9ZCxuJ8Zhwc1fIF07YfBJ+sZJ7Kau1205NFJtISGbVhVmpD9kQdoFwYQxYJuvPcDYyIYH/K86bYnBmJWRCwbTh7Es7DCCC90VY/yMjRNoYvjupjhuHKGXE8O/Y8weERZ+GuZ8BSxFwU81YK9mcQyw+Z+MdAFsZEhR7cpxRkty2INKxOdX8wJGVw3A1cInwuiBjLiED0ndh39RqJbE8DUQAJgngSbYK52rCadjhs2xf+tPiDatsDMAHU2DpyDcz,iv:Dh9hhr1mp+gXA1eUvsJVb5opbaEtdRMKAd4HQSQlOpc=,tag:k4M96tstNATvyFe6xF2IzQ==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k
SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz
ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2023-10-05T19:05:15Z"
mac: ENC[AES256_GCM,data:8xMV6RkmXpt2uY07E+59ZXwTwTL6oqo9j5sFOxejwnFU06MGW9t1h/5HFg+GKpp3Jj1LT6a7uuyip6bDGCMEhI054sTv2uDlOIFd4nbHwOh+keEH/FLa8csTq4yyisROsaXUUCtWxraGXz0MQXT8xlQMT7Pn0x43JssmPhOwrRo=,iv:JKNsroIAxvV5V23at/DsDdud5idVn5IEQHrgeFHR3fQ=,tag:XY0hikk4yvqfynPI8q+GBg==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.7.3

View file

@ -1,5 +1,7 @@
GitHub: GitHub:
ssh: ENC[AES256_GCM,data:jzRpTgefhZg7Vhm8QvWNsPBko1yw56sM/XehY72lAc7aRz+dx6BGgyYbZiifd7GrGJGUbH6gWfUg8YjgVla6VRsiHCEvSK3bY0ADDwTeSUs+wuybYXQZqhivSCInVtVSNAcp99uI1QwKor289zmxcFtSZEXgU1OCSel/8br+qipAbOkzAKX1v15eigjY4OSQxXL59EuuuHEQ+vjVVv95tDv03jaNAoU9UKr0Atrny/Fn2sQn4Tmec5Q1XdvDErKhSxrAFiACkxXUwPZMHez+BUZrmkksqpzNJjYNIlmsITuOVr7Fyen9wotAwsDf96Fmz5JYLtRX9CAboUgQLdUOKprwX/xgBnFtDTSH1Qr785T1QSAZL6xdE6hNibxZO3vGeeaPC3oGB5g9x5CwTQelMdOUPKdKorCDj226o56cTc/IQxUpsULbeOyi2pMGHiTHbiQBzHpxWyQ/gBktPkF25GOFeaCu3gW+xsspX91jSKudcYdBqWUNmJcdsfHfPxPM4cZtA/sVMyoA+YcehgU7GTu9DAlxDTug/JWo,iv:5shfzmrFFVEuaYmyTkBMAw9BIFFkKz0yl1dyJWxq6Y4=,tag:CX7TBJJXCKuIPSmg9/RpGg==,type:str] ssh: ENC[AES256_GCM,data:jzRpTgefhZg7Vhm8QvWNsPBko1yw56sM/XehY72lAc7aRz+dx6BGgyYbZiifd7GrGJGUbH6gWfUg8YjgVla6VRsiHCEvSK3bY0ADDwTeSUs+wuybYXQZqhivSCInVtVSNAcp99uI1QwKor289zmxcFtSZEXgU1OCSel/8br+qipAbOkzAKX1v15eigjY4OSQxXL59EuuuHEQ+vjVVv95tDv03jaNAoU9UKr0Atrny/Fn2sQn4Tmec5Q1XdvDErKhSxrAFiACkxXUwPZMHez+BUZrmkksqpzNJjYNIlmsITuOVr7Fyen9wotAwsDf96Fmz5JYLtRX9CAboUgQLdUOKprwX/xgBnFtDTSH1Qr785T1QSAZL6xdE6hNibxZO3vGeeaPC3oGB5g9x5CwTQelMdOUPKdKorCDj226o56cTc/IQxUpsULbeOyi2pMGHiTHbiQBzHpxWyQ/gBktPkF25GOFeaCu3gW+xsspX91jSKudcYdBqWUNmJcdsfHfPxPM4cZtA/sVMyoA+YcehgU7GTu9DAlxDTug/JWo,iv:5shfzmrFFVEuaYmyTkBMAw9BIFFkKz0yl1dyJWxq6Y4=,tag:CX7TBJJXCKuIPSmg9/RpGg==,type:str]
Gitea:
ssh: ENC[AES256_GCM,data:8eyuycMkBVMHfzaGeGs+0RA4vCpaAUTjCwiplUamypEk9BDYqxe+69O6OjJAGaPnmH4kpsb/WVd5sU6HNUogBuzDQhCrv2B6NadcmnV+fH3MHfAWvDy7R68PUkwcywWVOo65SONckjKVa0Y+8IeeJh9zpr36qCbbs+zPC4XTk+Y5R4vK/ocmSJSmwqVK1SfGGwOjFoJvHVI6jdXh//vgKaITqmyZV7N3OU9EiQp1FmNKwFf/x70w2LGATrNBcexwNy20ZYd6ewiAfJxFHR6Svfc2P5X2nlv99W5t1eU5QEGUcalcslsW/VkmFC3agN3Yry2EMIlfTlm0hm4+ryDGWEvgyUC0dLA8Ao0TLaaqig9HzBRP1h6aORe0lDwzTUg6WltrIu0s7hFwD4YLi1qP5lY99hvrDIRbTEg6AY6X4b32YFlyOXy0YDetv90+QyEcwANWO9MXz2S9hxuQmjOXMCVYMaiMLVUkG+mShbQuxTiFQt/7D83yOBSRLugx/aU318NKvUDlCt7wpZbMI3gBia4nUYLoLcXRKcAZ,iv:uc1ZtGdcolLrpQgS5n5LEAwBt0vMmkj2OuTXcn8sQ7A=,tag:F2ofcj0zEBgxwukMUd7+uw==,type:str]
sops: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@ -15,8 +17,8 @@ sops:
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w== dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2023-09-11T10:23:48Z" lastmodified: "2024-10-19T12:24:38Z"
mac: ENC[AES256_GCM,data:3XEbhFY1TlXo6bTctV2u4i6QPzXnJC6iU3F/MUARSQl1z4peOB5x8hZfdiV/hVMR8I+83TxDcEAmKDrcaMf89Tqa+OiD//wBekMUfS7AmBRhpv7X5qfarflfnygacFsAMhf/bdiqowYbGSNvlPjueqHJaFZ+3x/wPrt/jAYNlr8=,iv:ciQmY7bE+Je6kMlmxxtQvp+r3e/ZK942tT4TtXhDX2M=,tag:4+7uZlEm5bcRfZC7pp5Y7Q==,type:str] mac: ENC[AES256_GCM,data:g15gV0H0rlzoeN5Z/Zkgh/8ya9GSrWDVP9oqdVz3m4obmquCLDIygsPaYpRXmfOtPSgvX2KzZ08sNLfcBZSh7eH2Ws7xcezWOntOcmAQNz5LvemqP7YuwtivMK/P4qrkME+LQPkSrSUR+rT99Zj+RQXisy91Cq9NbVBj6uQH7+I=,iv:W+oDp5Dun0g35BFprOmgfI0LoPME3HpPuuniCKA32Kc=,tag:CUU74HZuRNedyI3txn9D+g==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.7.3 version: 3.8.1

View file

@ -0,0 +1,30 @@
{
description = "C Flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, flake-utils, nixpkgs }:
flake-utils.lib.eachDefaultSystem (system:
let
lib = import lib;
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in {
devShells.default = pkgs.mkShell {
packages = with pkgs; [
cmake
gcc
gnumake
valgrind
# You might want to use your own IDE.
(jetbrains.plugins.addPlugins jetbrains.clion [ "github-copilot" ])
];
};
});
}

View file

@ -0,0 +1,26 @@
{
description = "Java Flake";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem
( system:
let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in {
devShells.default = pkgs.mkShell {
packages = with pkgs; [
jdk8
openjdk17
# You might want to use your own IDE.
(jetbrains.plugins.addPlugins jetbrains.idea-ultimate [ "github-copilot" ])
];
};
});
}

View file

@ -0,0 +1,24 @@
{
description = "LaTeX Flake";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils}:
flake-utils.lib.eachDefaultSystem
(system:
let
pkgs = import nixpkgs {
inherit system;
};
in {
devShells.default = pkgs.mkShell {
packages = with pkgs; [
texlive.combined.scheme-full
pgfplots
biber
];
};
}
);
}

View file

@ -36,16 +36,18 @@ in {
}; };
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
corefonts # Calibri for Uni corefonts # Calibri for Uni
font-awesome # Dependency of Vifm & zsh config font-awesome # Dependency of Vifm & zsh config
letter # Personal font letter # Personal font
noto-fonts-cjk # Dependency of Zellij config noto-fonts-cjk # Dependency of Zellij config
noto-fonts # Dependency of Zellij config noto-fonts # Dependency of Zellij config
vistafonts # Microsoft fonts noto-fonts-color-emoji # Emoji's!
vistafonts # Microsoft fonts
]; ];
sisyphus = { sisyphus = {
programs.spotify-adblock.enable = true; programs.spotify-adblock.enable = true;
services.remEYEnder.enable = true;
}; };
home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable { home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable {
@ -59,20 +61,21 @@ in {
packages = (with pkgs; [ packages = (with pkgs; [
cmdtime # Zsh plugin cmdtime # Zsh plugin
icosystem # Personal icon theme icosystem # Personal icon theme
nextcloud-client
spotify-adblock spotify-adblock
]) ++ (with pkgs-unstable; [ ]) ++ (with pkgs-unstable; [
brave brave
chafa # Terminal image viewer chafa # Terminal image viewer
duf # Df alternative duf # Df alternative
feishin # Jellyfin music client
foot foot
fzf fzf
glow # Terminal Markdown renderer glow # Terminal Markdown renderer
jellyfin-media-player jellyfin-media-player
kitty libreoffice-fresh # Office tools
libreoffice-fresh # FIXME Waiting for electron version to update, now insecure.
logseq # logseq # Note taking
mpv mpv # Media player
nextcloud-client
nsxiv # Lightweight image viewer nsxiv # Lightweight image viewer
qalculate-gtk # Calculator qalculate-gtk # Calculator
spotify spotify
@ -85,11 +88,13 @@ in {
zsh-syntax-highlighting zsh-syntax-highlighting
# SMB # SMB
cifs-utils psmisc cifs-utils
psmisc
# Linters and LSPs # Linters and LSPs
statix # Nix statix # Nix
ruff pylint # Python # TODO Move to devshells
# ruff pylint # Python
]); ]);
pointerCursor = { pointerCursor = {
@ -131,6 +136,14 @@ in {
cursorTheme = cursor; cursorTheme = cursor;
}; };
services.syncthing = {
enable = true;
extraOptions = [
"--no-default-folder"
];
tray.enable = true;
};
xdg = { xdg = {
desktopEntries.spotify = { desktopEntries.spotify = {
name = "Spotify"; name = "Spotify";

View file

@ -72,14 +72,14 @@ in {
".config/zellij" = { ".config/zellij" = {
source = ../../../stow/zellij/.config/zellij; source = ../../../stow/zellij/.config/zellij;
}; };
".oh-my-zsh" = { ".gnupg" = {
enable = config.users.users.tdpeuter.shell == pkgs.zsh; inherit (config.programs.gnupg.agent) enable;
source = "${pkgs.oh-my-zsh}/share/oh-my-zsh"; source = ../../../stow/gnupg/.gnupg;
recursive = true; recursive = true;
}; # onChange = ''
".oh-my-zsh/themes/tdpeuter.zsh-theme" = { # chmod 700 /home/tdpeuter/.gnupg
enable = config.users.users.tdpeuter.shell == pkgs.zsh; # chmod 600 /home/tdpeuter/.gnupg/*
source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme; # '';
}; };
".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable { ".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable {
inherit (config.sisyphus.programs.ssh) enable; inherit (config.sisyphus.programs.ssh) enable;
@ -97,6 +97,15 @@ in {
}; };
} }
(lib.mkIf (config.users.users.tdpeuter.shell == pkgs.zsh) { (lib.mkIf (config.users.users.tdpeuter.shell == pkgs.zsh) {
".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;
};
".zshrc" = { ".zshrc" = {
source = ../../../stow/zsh/.zshrc; source = ../../../stow/zsh/.zshrc;
}; };

View file

@ -47,6 +47,17 @@ in {
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ]; definedAliases = [ "@np" ];
}; };
"NixOS Options" = {
urls = [{
template = "https://search.nixos.org/options";
params = [
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@no" ];
};
"GitHub" = { "GitHub" = {
urls = [{ urls = [{
template = "https://github.com/search"; template = "https://github.com/search";

View file

@ -7,9 +7,14 @@ in {
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
sops.secrets = lib.mkIf config.sisyphus.programs.sops.enable ( sops.secrets = lib.mkIf config.sisyphus.programs.sops.enable (
let let
Hugo = { HomeLab = {
format = "yaml"; format = "yaml";
sopsFile = ../../secrets/Hugo.yaml; sopsFile = ../../secrets/HomeLab.yaml;
owner = user;
};
personal = {
format = "yaml";
sopsFile = ../../secrets/personal.yaml;
owner = user; owner = user;
}; };
UGent = { UGent = {
@ -18,17 +23,18 @@ in {
owner = user; owner = user;
}; };
in { in {
"Hugo/ssh" = Hugo;
"UGent/HPC/ssh" = UGent; "UGent/HPC/ssh" = UGent;
"GitHub/ssh" = { # Git authentication
format = "yaml"; "Gitea/ssh" = personal;
sopsFile = ../../secrets/GitHub.yaml; "GitHub/ssh" = personal;
owner = user;
};
"Hugo/Gitea/ssh" = Hugo;
"UGent/GitHub/ssh" = UGent; "UGent/GitHub/ssh" = UGent;
"UGent/SubGit/ssh" = UGent; "UGent/SubGit/ssh" = UGent;
# HomeLab
"HomeLab/Gitea/ssh" = HomeLab;
"HomeLab/Hugo/ssh" = HomeLab;
"HomeLab/Nextcloud/ssh" = HomeLab;
}); });
}; };
} }

View file

@ -30,6 +30,10 @@ declare -A wallpaper
wallpaper[${THEME_LIGHT}]="bg-light" wallpaper[${THEME_LIGHT}]="bg-light"
wallpaper[${THEME_DARK}]="bg-dark" wallpaper[${THEME_DARK}]="bg-dark"
declare -A icon
icon[${THEME_LIGHT}]="\uf185"
icon[${THEME_DARK}]="\uf186"
############# #############
### Logic ### ### Logic ###
############# #############
@ -48,14 +52,14 @@ while getopts ":m:g" option; do
fi fi
;; ;;
g) g)
previous_theme="$(cat ${STATE_FILE})" current_state="$(cat "${STATE_FILE}")"
if [ "${previous_theme}" == "${THEME_LIGHT}" ]; then next_state="${theme_next[${current_state}]}"
if [ "${current_state}" == "${THEME_DARK}" ]; then
class="activated" class="activated"
percentage=1 percentage=100
else
percentage=0
fi fi
printf '{ "class": "%s", "percentage": %d }' "${class}" "${percentage}" printf '{"text": "%s", "alt": "%s", "tooltip": "Set theme to %s", "percentage": %d, "class": "%s"}' \
"${icon[${next_state}]}" "${gsettings_alt[${next_state}]}" "${next_state}" "${percentage:=0}" "${class:="none"}"
exit 0 exit 0
;; ;;
*) *)
@ -120,6 +124,7 @@ fi
if [ "$(command -v swaybg)" ]; then if [ "$(command -v swaybg)" ]; then
bg_path="${BG_DIR}/${wallpaper[${theme}]}" bg_path="${BG_DIR}/${wallpaper[${theme}]}"
/run/current-system/sw/bin/cp "${bg_path}" "${STATE_DIR}/bg" && swaymsg reload & /run/current-system/sw/bin/cp "${bg_path}" "${STATE_DIR}/bg" && swaymsg reload &
# pkill --signal 13 "waybar" &
fi fi
# Vifm # Vifm

View file

@ -1,9 +1,3 @@
Host Hugo
User admin
HostName 192.168.0.11
IdentitiesOnly yes
IdentityFile /run/secrets/Hugo/ssh
Host HPC Host HPC
User vsc44995 User vsc44995
HostName login.hpc.ugent.be HostName login.hpc.ugent.be
@ -15,7 +9,7 @@ Host git.depeuter.dev
User git User git
HostName git.depeuter.dev HostName git.depeuter.dev
IdentitiesOnly yes IdentitiesOnly yes
IdentityFile /run/secrets/Hugo/Gitea/ssh IdentityFile /run/secrets/Gitea/ssh
Host github.com Host github.com
User git User git
@ -36,3 +30,21 @@ Host subgit.ugent.be
IdentityFile /run/secrets/UGent/SubGit/ssh IdentityFile /run/secrets/UGent/SubGit/ssh
CanonicalizeHostname yes # Ignore capitalization CanonicalizeHostname yes # Ignore capitalization
# HomeLab
Host Gitea
User admin
HostName 192.168.0.24
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/Gitea/ssh
Host Hugo
User admin
HostName 192.168.0.11
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/Hugo/ssh
Host Nextcloud
User administrator
Hostname 192.168.0.14
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/Nextcloud/ssh

View file

@ -1,6 +1,6 @@
input type:keyboard { input type:keyboard {
xkb_layout "us" xkb_layout "us","be"
xkb_variant "altgr-intl" xkb_variant "altgr-intl","iso-alternate"
} }
input type:touchpad { input type:touchpad {

View file

@ -1,7 +1,8 @@
set $notify ~/projects/sisyphus/scripts/notify.sh set $notify ~/projects/sisyphus/scripts/notify.sh
# Focus
bindsym { bindsym {
# Focus
$flag+$up focus up $flag+$up focus up
$flag+$right focus right $flag+$right focus right
$flag+$down focus down $flag+$down focus down
@ -14,10 +15,8 @@ bindsym {
$flag+p focus parent $flag+p focus parent
$flag+space focus mode_toggle $flag+space focus mode_toggle
}
# Move windows # Move windows
bindsym {
$flag+Shift+$up move up $flag+Shift+$up move up
$flag+Shift+$right move right $flag+Shift+$right move right
$flag+Shift+$down move down $flag+Shift+$down move down
@ -32,10 +31,8 @@ bindsym {
$flag+KP_Next move scratchpad $flag+KP_Next move scratchpad
$flag+Prior scratchpad show $flag+Prior scratchpad show
$flag+KP_Prior scratchpad show $flag+KP_Prior scratchpad show
}
# Layouts # Layouts
bindsym {
$flag+z layout toggle split $flag+z layout toggle split
$flag+x layout tabbed $flag+x layout tabbed
$flag+c split h $flag+c split h
@ -209,23 +206,23 @@ bindsym {
-B 'Yes, exit sway' 'swaymsg exit' -B 'Yes, exit sway' 'swaymsg exit'
# Kill focused window # Kill focused window
$flag+q kill $flag+q kill
# Start a terminal # Start a terminal
$flag+Return exec $term $flag+Return exec $term
$alt+space exec $menu Control+$alt+t exec $term
$alt+Tab focus prev
$flag+Tab exec $window_switcher $alt+space exec $menu
$alt+Tab focus prev
$flag+Tab exec $window_switcher
--whole-window $alt+$scrollUp focus prev --whole-window $alt+$scrollUp focus prev
--whole-window $alt+$scrollDown focus next --whole-window $alt+$scrollDown focus next
# Lock the screen # Lock the screen
$flag+Delete exec $lock $flag+Delete exec $lock
# File explorer # File explorer
$flag+e exec $term -e vifm $flag+e exec $term -e vifm
# Internet browser
$flag+i exec firefox
} }
bindgesture { bindgesture {

View file

@ -5,42 +5,51 @@
set $default "default" set $default "default"
# Resizing # Resizing
set $resize "Resize" set $mode_resize "Resize"
bindsym $flag+r mode $resize bindsym $flag+r mode $mode_resize
mode $resize bindsym { mode $mode_resize {
$right resize grow width 10 px or 10 ppt bindsym {
$up resize grow height 10 px or 10 ppt $right resize grow width 10 px or 10 ppt
$left resize shrink width 10 px or 10 ppt $up resize grow height 10 px or 10 ppt
$down resize shrink height 10 px or 10 ppt $left resize shrink width 10 px or 10 ppt
$down resize shrink height 10 px or 10 ppt
Right resize grow width 10 px or 10 ppt Right resize grow width 10 px or 10 ppt
Up resize grow height 10 px or 10 ppt Up resize grow height 10 px or 10 ppt
Left resize shrink width 10 px or 10 ppt Left resize shrink width 10 px or 10 ppt
Down resize shrink height 10 px or 10 ppt Down resize shrink height 10 px or 10 ppt
Shift+$right resize grow width 50 px or 50 ppt Shift+$right resize grow width 50 px or 50 ppt
Shift+$up resize grow height 50 px or 50 ppt Shift+$up resize grow height 50 px or 50 ppt
Shift+$left resize shrink width 50 px or 50 ppt Shift+$left resize shrink width 50 px or 50 ppt
Shift+$down resize shrink height 50 px or 50 ppt Shift+$down resize shrink height 50 px or 50 ppt
Shift+Right resize grow width 50 px or 50 ppt Shift+Right resize grow width 50 px or 50 ppt
Shift+Up resize grow height 50 px or 50 ppt Shift+Up resize grow height 50 px or 50 ppt
Shift+Left resize shrink width 50 px or 50 ppt Shift+Left resize shrink width 50 px or 50 ppt
Shift+Down resize shrink height 50 px or 50 ppt Shift+Down resize shrink height 50 px or 50 ppt
$flag+$right move right $flag+$right move right
$flag+$up move up $flag+$up move up
$flag+$left move left $flag+$left move left
$flag+$down move down $flag+$down move down
$flag+Right move right $flag+Right move right
$flag+Up move up $flag+Up move up
$flag+Left move left $flag+Left move left
$flag+Down move down $flag+Down move down
Return mode $default $flag+r mode $default
Escape mode $default Escape mode $default
$flag+r mode $default Return mode $default
}
bindgesture {
swipe:2:right resize grow width 10 px or 10 ppt
swipe:2:down resize grow height 10 px or 10 ppt
swipe:2:left resize shrink width 10 px or 10 ppt
swipe:2:up resize shrink height 10 px or 10 ppt
}
} }
# System actions # System actions
@ -53,9 +62,23 @@ mode $mode_system bindsym {
r mode $default, exec systemctl reboot r mode $default, exec systemctl reboot
Shift+s mode $default, exec systemctl poweroff -i Shift+s mode $default, exec systemctl poweroff -i
Return mode $default
Escape mode $default
Control+$alt+Delete mode $default Control+$alt+Delete mode $default
Escape mode $default
Return mode $default
}
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
$alt+end mode $default
$alt+KP_End mode $default
Escape mode $default
Return mode $default
} }
# Screenshots # Screenshots
@ -72,20 +95,23 @@ mode $mode_screenshot bindsym {
Shift+s exec grimshot --notify save screen $save_format, mode $default Shift+s exec grimshot --notify save screen $save_format, mode $default
Print exec grimshot --notify save screen $save_format, mode $default Print exec grimshot --notify save screen $save_format, mode $default
Return mode $default
Escape mode $default Escape mode $default
Return mode $default
} }
set $mode_preferences "Toggle (d)ark mode, (s)unset, (n)otification" # Launcher
bindsym $alt+end mode $mode_preferences set $mode_launcher "Launch (f)irefox, (s)potify or (t)hunderbird."
bindsym $alt+KP_End mode $mode_preferences bindsym $flag+o mode $mode_launcher
mode $mode_preferences bindsym { mode $mode_launcher bindsym {
d exec "${SCRIPT_DIR}/toggle-light-dark.sh", mode $default f exec firefox, mode $default
s exec "${SCRIPT_DIR}/sunset.sh", mode $default t exec thunderbird, mode $default
n exec "${SCRIPT_DIR}/do-not-disturb.sh", mode $default
Return mode $default $flag+o mode $default
Escape mode $default Escape mode $default
$alt+end mode $default Return mode $default
$alt+KP_End mode $default
} }
# Ignore (all) keybinds. Useful when working with Virtual Machines.
set $mode_ignore "Ignore keybinds - Press Control+Alt+Insert to escape."
bindsym Control+$alt+Insert mode $mode_ignore
mode $mode_ignore bindsym Control+$alt+Insert mode $default

View file

@ -8,8 +8,10 @@ indicator-radius=200
clock clock
datestr=%A, %B %d %Y datestr=%A, %B %d %Y
show-failed-attempts
screenshots screenshots
effect-blur=5x5 effect-pixelate=10
effect-vignette=0.75:0 # Darken the whole screen. effect-vignette=0.75:0 # Darken the whole screen.
fade-in=0.25 fade-in=0.25
@ -18,25 +20,35 @@ grace-no-mouse
# Styling # Styling
color=000000 # The default background color when no image could be loaded
font=letter extended font=letter extended
text-color=ffffff text-color=ffffff
text-clear-color=ffffff text-clear-color=ffffff
text-wrong-color=eb4d4b text-caps-lock-color=ffffff
text-wrong-color=bd2024
layout-text-color=ffffff
# Make all the other stuff invisible # Make all the other stuff invisible
key-hl-color=00000000
separator-color=00000000
ring-color=00000000
ring-clear-color=00000000
ring-ver-color=00000000
ring-wrong-color=00000000
line-color=00000000
line-clear-color=00000000
line-ver-color=00000000
line-wrong-color=00000000
inside-color=00000000 inside-color=00000000
inside-clear-color=00000000 inside-clear-color=00000000
inside-caps-lock-color=00000000
inside-ver-color=00000000 inside-ver-color=00000000
inside-wrong-color=00000000 inside-wrong-color=00000000
key-hl-color=00000000
layout-bg-color=00000000
layout-border-color=00000000
line-color=00000000
line-clear-color=00000000
line-caps-lock-color=00000000
line-ver-color=00000000
line-wrong-color=00000000
ring-color=00000000
ring-clear-color=00000000
ring-caps-lock-color=00000000
ring-ver-color=00000000
ring-wrong-color=00000000
separator-color=00000000
text-ver-color=00000000 text-ver-color=00000000

View file

@ -82,6 +82,9 @@ Plug 'prabirshrestha/vim-lsp'
Plug 'sheerun/vim-polyglot' Plug 'sheerun/vim-polyglot'
Plug 'vifm/vifm.vim' Plug 'vifm/vifm.vim'
" Coq
Plug 'whonore/Coqtail'
call plug#end() call plug#end()
" }}} " }}}

View file

@ -19,9 +19,9 @@
"include": [ "include": [
// Import modules (!) // Import modules (!)
"~/.config/waybar/modules.json", "./modules.json",
// "~/.config/waybar/default.json" // "./default.json"
"~/.config/waybar/left.json" "./left.json"
], ],
}, },
@ -30,13 +30,13 @@
"name": "keep", "name": "keep",
"position": "top", "position": "top",
"height": 25, "height": 25,
"modules-left": ["sway/mode", "keyboard-state"], "modules-left": ["sway/mode"],
"modules-center": ["clock"], "modules-center": ["clock"],
"modules-right": ["privacy"], "modules-right": ["privacy", "keyboard-state"],
"include": [ "include": [
// Import modules (!) // Import modules (!)
"~/.config/waybar/modules.json" "./modules.json"
], ],
}] }]

View file

@ -2,17 +2,15 @@
"modules-left": [ "modules-left": [
"sway/workspaces", "sway/workspaces",
"custom/scratchpad-indicator", "custom/scratchpad-indicator",
"mpris", "group/system"
"group/system",
], ],
"modules-right": [ "modules-right": [
"group/hardware", "tray",
"custom/sep", "sway/language",
"bluetooth", "bluetooth",
"network", "network",
"pulseaudio", "pulseaudio",
"battery", "group/battery",
"custom/sep", "mpris"
"tray"
] ]
} }

View file

@ -0,0 +1,80 @@
@define-color foreground rgb(202, 202, 202);
@define-color background rgb( 3, 3, 3);
@define-color highlight-background alpha(@foreground, 0.4);
@define-color accent #00897b;
@define-color white #ecf0f1;
@define-color warning-red #eb4d4b;
* {
font-family: letter, "Font Awesome 6 Free", font-awesome, monospace;
font-size: 13px;
font-weight: 600;
}
window#waybar {
border: none;
color: @white;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.keep {
background-color: @transparent;
}
window#waybar.toggle {
background-color: alpha(@foreground, 0.4);
}
tooltip {
background: alpha(@background, 0.8);
}
tooltip label {
color: @white;
}
#workspaces button {
border: none;
padding: 0 8px;
border-radius: 5px;
animation: ws_normal 20s ease-in-out 1;
}
#mode,
#workspaces button.focused {
background-color: alpha(@background, 0.2);
}
#workspaces button:hover {
background-color: alpha(@background, 0.2);
}
#battery,
#disk,
#bluetooth,
#clock,
#custom-browser,
#custom-scratchpad-indicator,
#custom-system-hibernate, #custom-system-lock, #custom-system-reboot, #custom-system-shutdown, #custom-system-sleep,
#custom-toggle-light-dark,
#custom-toggle-night-light,
#custom-toggle-notifications,
#cpu,
#idle_inhibitor,
#keyboard-state,
#memory,
#mpris,
#network,
#sway-language,
#sway-window,
#power-profiles-daemon,
#privacy,
#pulseaudio,
#temperature,
#tray {
color: @white;
}

View file

@ -20,13 +20,14 @@
}, },
"bluetooth": { "bluetooth": {
/* bluetooth-b */
"format-disabled": "<big>\uf294</big>", "format-disabled": "<big>\uf294</big>",
"format-off": "\uf294", "format-off": "\uf294",
"format-on": "<big>\uf294</big>", "format-on": "<big>\uf294</big>",
"format-connected": "<big>\uf294</big>c", "format-connected": "<big>\uf294</big>c",
"max-length": 10.3, "max-length": 10.3,
"on-click": "bluetoothctl power $( bluetoothctl show | sed -n 's/\\s*Powered: \\(yes\\|no\\)/\\1/p' | sed 's/yes/off/;s/no/on/' )", "on-click": "bluetoothctl power $( bluetoothctl show | sed -n 's/\\s*Powered: \\(yes\\|no\\)/\\1/p' | sed 's/yes/off/;s/no/on/' )",
"on-click-right": "kitty -e bluetoothctl", "on-click-right": "foot -e bluetoothctl",
"tooltip-format": "{status}", "tooltip-format": "{status}",
"tooltip-format-on": "{status}, no devices connected", "tooltip-format-on": "{status}, no devices connected",
"tooltip-format-connected": "{status} ({num_connections}):\n{device_enumerate}", "tooltip-format-connected": "{status} ({num_connections}):\n{device_enumerate}",
@ -36,9 +37,20 @@
"clock": { "clock": {
"format": "{:%H:%M}", "format": "{:%H:%M}",
"format-alt": "{:%d/%m/%Y %H:%M}", "format-alt": "{:%a %b %d, %Y %R}",
"timezone": "Europe/Brussels", "timezone": "Europe/Brussels",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>" "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"calendar": {
"mode-mon-col": 3,
"on-scroll": 1,
"format": {
/* Highlight today's date. */
"today": "<span background='#ffffff' color='#000000'><b>{}</b></span>"
}
},
"actions": {
"on-click": "mode"
}
}, },
"custom/browser": { "custom/browser": {
@ -47,26 +59,11 @@
"tooltip-format": "Launch an application" "tooltip-format": "Launch an application"
}, },
"custom/light-dark-toggle": {
"on-click": "bash ${SCRIPT_DIR}/toggle-light-dark.sh",
"tooltip-format": "Toggle between light and dark mode",
"format": "\uf042 ",
"tooltip": true
},
"custom/night-light-toggle": {
"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": { "custom/scratchpad-indicator": {
"interval": 3, "interval": 3,
"return-type": "json", "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'", "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", "format": "\uf2d2 {}",
"on-click": "exec swaymsg 'scratchpad show'", "on-click": "exec swaymsg 'scratchpad show'",
"on-click-right": "exec swaymsg 'move scratchpad'" "on-click-right": "exec swaymsg 'move scratchpad'"
}, },
@ -106,6 +103,23 @@
"on-click": "systemctl poweroff -i" "on-click": "systemctl poweroff -i"
}, },
"custom/toggle-light-dark": {
"exec": "bash ${SCRIPT_DIR}/toggle-light-dark.sh -g",
"signal": 13,
"return-type": "json",
"on-click": "bash ${SCRIPT_DIR}/toggle-light-dark.sh",
// "format": "\uf042 ",
"format": "{}",
"tooltip": true
},
"custom/toggle-night-light": {
"on-click": "bash ${SCRIPT_DIR}/sunset.sh",
"format": "\uf0eb ",
"tooltip": true,
"tooltip-format": "Toggle night-light on or off"
},
"custom/toggle-notifications": { "custom/toggle-notifications": {
"on-click": "bash ${SCRIPT_DIR}/do-not-disturb.sh", "on-click": "bash ${SCRIPT_DIR}/do-not-disturb.sh",
"tooltip-format": "Toggle notifications", "tooltip-format": "Toggle notifications",
@ -114,29 +128,34 @@
}, },
"cpu": { "cpu": {
"interval": 10,
"format": "{usage}% \uf2db", "format": "{usage}% \uf2db",
"on-click": "foot -e htop", "on-click": "foot -e top",
"tooltip": true "tooltip": true
}, },
"group/hardware": { "group/battery": {
"orientation": "inherit", "orientation": "inherit",
"modules": [ "modules": [
"power-profiles-daemon", "battery",
"custom/sep",
"memory", "memory",
"cpu", "cpu",
"temperature", "temperature",
"custom/sep",
"custom/system-shutdown", "custom/system-shutdown",
"custom/system-reboot", "custom/system-reboot",
"custom/system-hibernate", "custom/system-hibernate",
"custom/system-sleep", "custom/system-sleep",
"custom/system-lock", "custom/system-lock",
"custom/sep",
"power-profiles-daemon",
], ],
"drawer": { "drawer": {
"transition-duration": 500, "transition-duration": 500,
"transition-left-to-right": false, "transition-left-to-right": false,
"children-class": "drawer-child", "children-class": "drawer-child"
}, }
}, },
"group/system": { "group/system": {
@ -145,13 +164,13 @@
"idle_inhibitor", "idle_inhibitor",
"custom/light-dark-toggle", "custom/light-dark-toggle",
"custom/night-light-toggle", "custom/night-light-toggle",
"custom/toggle-notifications", "custom/toggle-notifications"
], ],
"drawer": { "drawer": {
"transition-duration": 500, "transition-duration": 500,
"tansition-left-to-right": true, "tansition-left-to-right": true,
"children-class": "drawer-child", "children-class": "drawer-child"
}, }
}, },
"idle_inhibitor": { "idle_inhibitor": {
@ -165,7 +184,7 @@
"keyboard-state": { "keyboard-state": {
"format": { "format": {
"capslock": "{icon}", "capslock": "{icon}"
}, },
"format-icons": { "format-icons": {
"locked": "\uf023", "locked": "\uf023",
@ -173,7 +192,7 @@
}, },
"numlock": false, "numlock": false,
"capslock": true, "capslock": true,
"scrollock": false, "scrollock": false
}, },
"memory": { "memory": {
@ -198,20 +217,27 @@
"title", "title",
"artist" "artist"
], ],
"dynamic-len": 40, "dynamic-len": 40
}, },
"network": { "network": {
"format-disconnected": "\uf127", "format-disconnected": "\uf127",
"format-ethernet": "\uf6ff {ifname}: {ipadds}/{cidr}", "format-ethernet": "\uf6ff {ifname}: {ipadds}/{cidr}", /* network-wired */
"format-wifi": "\uf1eb", "format-wifi": "\uf1eb", /* wifi */
"interval": 5, "interval": 5,
"on-click-right": "kitty -e nmtui", "on-click-right": "foot -e nmtui",
"tooltip-format": "{ifname}: {ipaddr}", "tooltip-format": "{ifname}: {ipaddr}",
"tooltip-format-disconnected": "Disconnected", "tooltip-format-disconnected": "Disconnected",
"tooltip-format-wifi": "{essid} ({signalStrength}%)\n{ifname}: {ipaddr}" "tooltip-format-wifi": "{essid} ({signalStrength}%)\n{ifname}: {ipaddr}"
}, },
"sway/language": {
"format": "{short}",
"on-click": "swaymsg input type:keyboard xkb_switch_layout next",
"tooltip-format": "Switch keyboard layouts",
"tooltip": true
},
"sway/window": { "sway/window": {
"max-length": 85 "max-length": 85
}, },
@ -221,7 +247,9 @@
"disable-scroll": true, "disable-scroll": true,
"format": "{icon}{name}", "format": "{icon}{name}",
"format-icons": { "format-icons": {
"default": "", // Prevent showing workspace name literal. //"default": "\uf111",
"default": "",
//"focused": "\uf192",
"urgent": "\uf071 " "urgent": "\uf071 "
}, },
// "persistent_workspaces": { // "persistent_workspaces": {
@ -235,9 +263,9 @@
"tooltip": true, "tooltip": true,
"format-icons": { "format-icons": {
"default": "", "default": "",
"performance": "", "performance": "\uf135",
"balanced": "", "balanced": "",
"power-saver": "" "power-saver": "\uf06c"
} }
}, },
@ -261,32 +289,43 @@
"pulseaudio": { "pulseaudio": {
"format": "{volume}% {icon}{format_source}", "format": "{volume}% {icon}{format_source}",
"format-muted": "\uf6a9{format_source}", "format-muted": "\uf6a9{format_source}", /* volume-xmark */
"format-bluetooth": "{volume}% {icon}\uf294{format_source}", "format-bluetooth": "{volume}% {icon}\uf294{format_source}",
"format-bluetooth-muted": "\uf6a9 {icon}\uf294{format_source}", "format-bluetooth-muted": "\uf6a9 {icon}\uf294{format_source}",
"format-source": " {volume}% \uf130", "format-source": " {volume}% \uf130",
"format-source-muted": "", "format-source-muted": "",
"format-icons": { "format-icons": {
"headphone": "\uf58f", "headphone": "\uf58f", /* headphones-simple */
"hands-free": "\uf590", "hands-free": "\uf590", /* headset */
"headset": "\uf590", "headset": "\uf590", /* headset */
"phone": "\uf3ce", "phone": "\uf3ce", /* mobile */
"portable": "\uf3ce", "portable": "\uf3ce", /* mobile */
"car": "\uf1b9", "car": "\uf1b9", /* car */
"default": ["\uf026", "\uf027", "\uf028 "] "default": [
"\uf026", /* volume-off */
"\uf027", /* volume-low */
"\uf028" /* volume-high */
]
}, },
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"on-click-right": "pavucontrol", "on-click-right": "pavucontrol",
"scroll-step": 2 "scroll-step": -2
}, },
"temperature": { "temperature": {
"critical-threshold": 70, "critical-threshold": 75,
"format": "{temperatureC}°C {icon}", "format": "{temperatureC}°C {icon}",
"format-icons": ["\uf2cb", "\uf2c9", "\uf2c7"] "format-icons": [
"\uf2cb", /* temperature-empty */
"\uf2ca", /* temperature-quarter */
"\uf2c9", /* temperature-half */
"\uf2c8", /* temperature-three-quarters */
"\uf2c7" /* temperature-full */
]
}, },
"tray": { "tray": {
"show-passive-items": true,
"spacing": 10 "spacing": 10
} }
} }

View file

@ -0,0 +1,10 @@
@define-color foreground rgb( 3, 3, 3);
@define-color background rgb(202, 202, 202);
@define-color highlight-background alpha(@foreground, 0.4);
* {
color: @foreground;
font-family: letter, "Font Awesome 6 Free", font-awesome, monospace;
}

View file

@ -0,0 +1,10 @@
@define-color foreground rgb(202, 202, 202);
@define-color background rgb( 3, 3, 3);
@define-color highlight-background alpha(@foreground, 0.4);
* {
color: @foreground;
background-color: red;
}

View file

@ -9,72 +9,41 @@
* - round.css * - round.css
*/ */
@define-color transparent-black rgba(23, 23, 23, 0.9); @import "modern.css";
@define-color white #ecf0f1;
@define-color warning-red #eb4d4b;
@define-color accent #00897b;
window#waybar { #disk,
font-family: letter, "Font Awesome 6 Free", font-awesome, monospace;
font-size: 13px;
-webkit-font-smoothing: antialiased;
transition-property: background-color;
transition-duration: .5s;
}
#window, #workspaces {
margin: 0 5px;
}
#workspaces button {
border: none;
border-radius: 0;
min-width: 30px;
padding: 0 5px;
}
#workspaces button.focused {
background-color: transparent;
color: @white;
}
#workspaces button:hover {
background-color: transparent;
color: @transparent-black;
}
#workspaces button.urgent {
color: @white;
background-color: @warning-red;
}
/* All modules individually. */
#backlight,
#battery,
#bluetooth, #bluetooth,
#clock, #clock,
#cpu,
#custom-browser, #custom-browser,
#custom-light-dark-toggle, #custom-scratchpad-indicator,
#custom-night-light-toggle, #custom-system-hibernate, #custom-system-lock, #custom-system-reboot, #custom-system-shutdown, #custom-system-sleep,
#custom-system-lock, #custom-system-sleep, #custom-system-hibernate, #custom-system-reboot, #custom-system-shutdown, #custom-toggle-light-dark,
#custom-toggle-night-light,
#custom-toggle-notifications, #custom-toggle-notifications,
#disk, #cpu,
#group-hardware,
#group-system,
#idle_inhibitor, #idle_inhibitor,
#keyboard-state, #keyboard-state,
#memory, #memory,
#mode,
#mpd,
#mpris, #mpris,
#network, #network,
#sway-language,
#sway-window,
#power-profiles-daemon, #power-profiles-daemon,
#privacy-item.audio-in, #privacy-item.audio-out, #privacy-item.screenshare, #privacy,
#pulseaudio, #pulseaudio,
#temperature, #temperature,
#tray { #tray {
padding: 0 5px; padding: 0 4px;
}
/* FIXME */
#battery {
padding: 0 0 0 4px;
}
#window,
#workspaces {
margin: 0 4px;
} }
/* If workspaces is the leftmost module, omit left margin */ /* If workspaces is the leftmost module, omit left margin */
@ -87,19 +56,6 @@ window#waybar {
margin-right: 0; margin-right: 0;
} }
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
label:focus {
background-color: #000000;
}
/* Module specific colours */
#battery.charging, #battery.plugged { #battery.charging, #battery.plugged {
color: #ffffff; color: #ffffff;
background-color: #26A65B; background-color: #26A65B;
@ -122,27 +78,32 @@ label:focus {
opacity: 0.6; opacity: 0.6;
} }
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#mpris { #mpris {
color: #2a5c45; color: #ecf0f1;
min-width: 100px; min-width: 100px;
} }
#mpris.spotify { #mpris.spotify {
background-color: #66cc99; background-color: #66cc99;
color: #2a5c45;
} }
#mpris.vlc { #mpris.vlc {
background-color: #ffa000; background-color: #ffa000;
} }
#temperature.critical { #mpris.Feishin {
background-color: #eb4d4b; background: rgb(170,92,195);
background: linear-gradient(90deg, rgba(170,92,195,1) 0%, rgba(0,164,220,1) 100%);
} }
#custom_light-dark-toggle.activated, #temperature.critical {
#idle_inhibitor.activated { background-color: @warning-red;
background-color: #ecf0f1;
color: #2d3436;
} }
#tray > .passive { #tray > .passive {
@ -151,15 +112,34 @@ label:focus {
#tray > .needs-attention { #tray > .needs-attention {
-gtk-icon-effect: highlight; -gtk-icon-effect: highlight;
background-color: #eb4d4b; background-color: @warning-red;
} }
#privacy-item.audio-in, #workspaces button.focused {
#privacy-item.audio-out, box-shadow: none;
#privacy-item.screenshare {
background-color: #ffaa01;
color: #2d3436;
} }
@import "sharp.css"; button {
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
box-shadow: none;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: none;
}
label:focus {
background-color: #000000;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}

View file

@ -54,8 +54,12 @@ alias free='free -m'
alias gs='git status' alias gs='git status'
alias hgrep='history | grep' alias hgrep='history | grep'
alias ll='ls -la' alias ll='ls -la'
alias mkdir='mkdir -pv'
alias more='less' alias more='less'
alias mv='mv -i'
alias np='nano -w PKGBUILD' alias np='nano -w PKGBUILD'
alias rm='rm -I --preserve-root'
alias zip='zip -r'
alias update='pushd ~/projects/sisyphus/nixos alias update='pushd ~/projects/sisyphus/nixos
nix flake update nix flake update
sudo nixos-rebuild switch --flake .# --show-trace sudo nixos-rebuild switch --flake .# --show-trace