diff --git a/common.nix b/common.nix index 44987f9..d109206 100644 --- a/common.nix +++ b/common.nix @@ -29,8 +29,8 @@ with builtins; { environment = { systemPackages = with pkgs; [ - pynitrokey - nitrokey-app2 + # pynitrokey + # nitrokey-app2 veracrypt @@ -145,7 +145,7 @@ with builtins; { opengl.enable = true; uinput.enable = true; bluetooth.enable = true; - keyboard.uhk.enable = true; + # keyboard.uhk.enable = true; }; security.rtkit.enable = true; @@ -153,9 +153,6 @@ with builtins; { users.users.jade = { isNormalUser = true; extraGroups = ["wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" "wireshark"]; - packages = [ - pkgs.marksman - ]; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOaE8TFsIazpn4OnHvHcRpOFr9FfvMaWOiEjmHsmnAoE cardno:000F_70CD7D05" ]; diff --git a/flake.lock b/flake.lock index a25a286..b82f715 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1703950660, - "narHash": "sha256-GgynJdQ6KngwFBd4YbMYbwesyOiMTZAFymsStE0PSfM=", + "lastModified": 1707923576, + "narHash": "sha256-vch1hvgoB2TEl1+0J9h5uPkTrL4zNFUxE/razagkqQQ=", "owner": "hercules-ci", "repo": "arion", - "rev": "f295eabd25b7c894ab405be784e2a010f83fde55", + "rev": "2b1fa9a8e9e40bb8e65a677c6fdd66dae4f4676e", "type": "github" }, "original": { @@ -49,11 +49,11 @@ ] }, "locked": { - "lastModified": 1701473968, - "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", + "lastModified": 1706830856, + "narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", + "rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f", "type": "github" }, "original": { @@ -71,11 +71,11 @@ ] }, "locked": { - "lastModified": 1696343447, - "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", + "lastModified": 1701473968, + "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", + "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", "type": "github" }, "original": { @@ -170,11 +170,11 @@ ] }, "locked": { - "lastModified": 1701009247, - "narHash": "sha256-GuX16rzRze2y7CsewJLTV6qXkXWyEwp6VCZXi8HLruU=", + "lastModified": 1704029560, + "narHash": "sha256-a4Iu7x1OP+uSYpqadOu8VCPY+MPF3+f6KIi+MAxlgyw=", "owner": "hercules-ci", "repo": "hercules-ci-effects", - "rev": "31b6cd7569191bfcd0a548575b0e2ef953ed7d09", + "rev": "d5cbf433a6ae9cae05400189a8dbc6412a03ba16", "type": "github" }, "original": { @@ -190,11 +190,11 @@ ] }, "locked": { - "lastModified": 1706221476, - "narHash": "sha256-T4b8YafVjHXvtDY8ARec1WrXO8uyyNZOpNgv9yoQy2M=", + "lastModified": 1707919853, + "narHash": "sha256-qxmBGDzutuJ/tsX4gp+Mr7fjxOZBbeT9ixhS5o4iFOw=", "owner": "nix-community", "repo": "home-manager", - "rev": "c7ce343d9bf1a329056a4dd5b32ea8cc43b55e15", + "rev": "043ba285c6dc20f36441d48525402bcb9743c498", "type": "github" }, "original": { @@ -226,7 +226,7 @@ "mac-brcm-fw": { "flake": false, "locked": { - "lastModified": 1706552810, + "lastModified": 1701034142, "narHash": "sha256-+kW8ogc6DykjMVlrr+3vWKs9ZUdJ9EW72LbY7k/Qvh4=", "path": "/home/jade/nix-configs/mac-brcm-fw", "type": "path" @@ -329,11 +329,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1701436327, - "narHash": "sha256-tRHbnoNI8SIM5O5xuxOmtSLnswEByzmnQcGGyNRjxsE=", + "lastModified": 1707689078, + "narHash": "sha256-UUGmRa84ZJHpGZ1WZEBEUOzaPOWG8LZ0yPg1pdDF/yM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "91050ea1e57e50388fa87a3302ba12d188ef723a", + "rev": "f9d39fb9aff0efee4a3d5f4a6d7c17701d38a1d8", "type": "github" }, "original": { @@ -345,11 +345,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1706098335, - "narHash": "sha256-r3dWjT8P9/Ah5m5ul4WqIWD8muj5F+/gbCdjiNVBKmU=", + "lastModified": 1707786466, + "narHash": "sha256-yLPfrmW87M2qt+8bAmwopJawa+MJLh3M9rUbXtpUc1o=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a77ab169a83a4175169d78684ddd2e54486ac651", + "rev": "01885a071465e223f8f68971f864b15829988504", "type": "github" }, "original": { @@ -466,11 +466,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1705856552, - "narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=", + "lastModified": 1707689078, + "narHash": "sha256-UUGmRa84ZJHpGZ1WZEBEUOzaPOWG8LZ0yPg1pdDF/yM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "612f97239e2cc474c13c9dafa0df378058c5ad8d", + "rev": "f9d39fb9aff0efee4a3d5f4a6d7c17701d38a1d8", "type": "github" }, "original": { diff --git a/hosts/catbook-j/configuration.nix b/hosts/catbook-j/configuration.nix index 69a6e68..64b4fa6 100644 --- a/hosts/catbook-j/configuration.nix +++ b/hosts/catbook-j/configuration.nix @@ -113,6 +113,15 @@ # Enable networking networking.networkmanager.enable = true; + security.pam.services.jade.u2fAuth = true; + programs.i3lock.u2fSupport = true; + security.pam.u2f = { + enable = true; + cue = true; + control = "sufficient"; + authFile = "/home/jade/.ssh/u2f_keys"; + }; + i18n.extraLocaleSettings = { LC_ADDRESS = "de_DE.UTF-8"; LC_IDENTIFICATION = "de_DE.UTF-8"; diff --git a/hosts/potatobook-g/configuration.nix b/hosts/potatobook-g/configuration.nix index 47ef40f..28a2e87 100644 --- a/hosts/potatobook-g/configuration.nix +++ b/hosts/potatobook-g/configuration.nix @@ -98,7 +98,7 @@ }; }; - hardware.keyboard.uhk.enable = true; + # hardware.keyboard.uhk.enable = true; hardware.enableRedistributableFirmware = true; environment.systemPackages = with pkgs; [ diff --git a/justfile b/justfile index 0e2ed0b..0c3044a 100644 --- a/justfile +++ b/justfile @@ -4,7 +4,7 @@ test: sudo nixos-rebuild test --flake . --impure build: - sudo nixos-rebuild switch --flake . --impure + sudo nixos-rebuild switch --flake . --impure --fast update: nix flake update --commit-lock-file diff --git a/modules/default.nix b/modules/default.nix index 4a225f4..c3be46f 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -6,5 +6,6 @@ ./flatpak.nix ./firewall.nix ./git.nix + ./kmscon.nix ]; } diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 8c12059..2841c31 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -55,8 +55,10 @@ in xserver = { enable = true; - layout = "us"; - xkbVariant = "altgr-intl"; + xkb = { + layout = "us"; + variant = "altgr-intl"; + }; libinput = { enable = true; @@ -92,6 +94,10 @@ in }; home-manager.users.jade = {pkgs, ...}: { + programs.ssh = { + controlMaster = "yes"; + }; + programs.bat = { # TODO: more config enable = true; @@ -138,7 +144,7 @@ in xdotool xorg.xwininfo gparted - uhk-agent + # uhk-agent cool-retro-term xdg-desktop-portal-gtk virt-manager diff --git a/modules/desktop/firefox.nix b/modules/desktop/firefox.nix index 87665e3..586928b 100644 --- a/modules/desktop/firefox.nix +++ b/modules/desktop/firefox.nix @@ -17,14 +17,18 @@ }; policies = { DefaultDownloadDirectory = "\${home}/Downloads"; - Extensions.Install = [ - "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin" - "https://addons.mozilla.org/firefox/downloads/latest/tridactyl-vim" - "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17" - "https://addons.mozilla.org/firefox/downloads/latest/gruvbox-dark-theme" - "https://addons.mozilla.org/firefox/downloads/latest/torproject-snowflake" - "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager" - "https://addons.mozilla.org/firefox/downloads/latest/terms-of-service-didnt-read" + Extensions.Install = builtins.map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}") [ + "ublock-origin" + "tridactyl-vim" + "privacy-badger17" + "gruvbox-dark-theme" + "torproject-snowflake" + "bitwarden-password-manager" + "terms-of-service-didnt-read" + "shinigami-eyes" + "darkreader" + "sponsorblock" + "youtube-mrbeastify" ]; Extensions.Uninstall = [ "google@search.mozilla.org" @@ -39,95 +43,6 @@ "DisablePocket" = true; }; profiles.jade = { - bookmarks = [ - { - name = "Toolbar"; - toolbar = true; - bookmarks = [ - { - name = "Katzencafé"; - tags = ["fedi" "social"]; - keyword = "ck"; - url = "https://ck.katzen.cafe"; - } - { - name = "Mastodon.de"; - tags = ["fedi" "social"]; - keyword = "mde"; - url = "https://mastodon.de"; - } - { - name = "Nekoverse"; - tags = ["fedi" "social"]; - keyword = "neko"; - url = "https://social.nekover.se"; - } - { - name = "Katzenschmiede"; - tags = ["fedi" "git"]; - keyword = "forge"; - url = "https://forge.katzen.cafe"; - } - { - name = "Katzenwolke"; - tags = ["cloud"]; - keyword = "wolke"; - url = "https://wolke.katzen.cafe"; - } - { - name = "Penpot"; - tags = ["design"]; - keyword = "pp"; - url = "https://design.katzen.cafe"; - } - { - name = "Pad"; - tags = ["pad"]; - keyword = "pad"; - url = "https://pad.katzen.cafe"; - } - { - name = "Auth"; - tags = ["keycloak"]; - keyword = "auth"; - url = "https://auth.katzen.cafe/realms/katzen.cafe/account"; - } - { - name = "CCCHH"; - bookmarks = [ - { - name = "Website"; - url = "https://hamburg.ccc.de"; - } - { - name = "Wiki"; - url = "https://wiki.ccchh.net"; - } - { - name = "Wiki (old)"; - url = "https://wiki.hamburg.ccc.de"; - } - { - name = "Wiki (nonpublic)"; - url = "https://nonpublic.wiki.hamburg.ccc.de"; - } - { - name = "Pads"; - url = "https://pad.hamburg.ccc.de"; - } - { - name = "Cloud"; - url = "https://cloud.hamburg.ccc.de"; - } - { - name = "Club Assistant"; - url = "https://club-assistant.ccchh.net"; - } - ]; - } - ]; - } - ]; search = { force = true; default = "DuckDuckGo"; @@ -252,6 +167,7 @@ settings = { "devtools.editor.keymap" = "vim"; "devtools.toolbox.host" = "right"; + "devtools.theme" = "dark"; "webgl.disabled" = false; "image.jxl.enabled" = true; "browser.urlbar.decodeURLsOnCopy" = true; @@ -264,9 +180,11 @@ "browser.aboutwelcome.showModal" = false; "browser.aboutwelcome.enabled" = false; "browser.preferences.moreFromMozilla" = false; - "identity.fxaccounts.enabled" = false; - "browser.tabs.firefox-view" = false; - "browser.tabs.firefox-view-next" = false; + "browser.menu.showViewImageInfo" = true; + + "identity.fxaccounts.enabled" = true; + "browser.tabs.firefox-view" = true; + "browser.tabs.firefox-view-next" = true; "browser.newtabpage.activity-stream.showSponsored" = false; "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false; diff --git a/modules/desktop/polybar.nix b/modules/desktop/polybar.nix index a01189c..b822dd8 100644 --- a/modules/desktop/polybar.nix +++ b/modules/desktop/polybar.nix @@ -39,7 +39,7 @@ separator-foreground = "\${colors.disabled}"; font-0 = "FiraCode Nerd Font"; modules-left = "xworkspaces xwindow"; - modules-right = "memory cpu wlan battery"; + modules-right = "memory cpu wlan bat0 bat1"; cursor-click = "pointer"; cursor-scroll = "ns-resize"; enable-ipc = true; @@ -103,12 +103,9 @@ interface-type = "wireless"; label-connected = "%{F#F0C674}%{F-} %local_ip%"; }; - - "module/battery" = { + "battery-base" = { type = "internal/battery"; poll-interval = 1; - battery = "BAT0"; - adapter = "ADP1"; time-format = "%H%{F#7c6f64}:%{F#d5c4a1}%M"; label-charging = "%{F#98971a}󰚥 %{F#ebdbb2}%percentage%%%{F#d5c4a1} %time%"; format-charging = " "; @@ -131,6 +128,16 @@ "%{F#98971a}󰁹" ]; }; + "module/bat0" = { + "inherit" = "battery-base"; + battery = "BAT0"; + adapter = "ADP1"; + }; + "module/bat1" = { + "inherit" = "battery-base"; + battery = "BAT1"; + adapter = "ADP1"; + }; "settings" = { screenchange-reload = true; diff --git a/modules/desktop/social.nix b/modules/desktop/social.nix index 48d656a..d494d0c 100644 --- a/modules/desktop/social.nix +++ b/modules/desktop/social.nix @@ -14,7 +14,6 @@ in home-manager.users.jade = {pkgs, ...}: { home.packages = with pkgs; [ evolutionWithPlugins - cinny-desktop signal-desktop mumble element-desktop diff --git a/modules/flatpak.nix b/modules/flatpak.nix index cd44ac7..e3683fe 100644 --- a/modules/flatpak.nix +++ b/modules/flatpak.nix @@ -14,6 +14,8 @@ in services.flatpak.enable = true; xdg.portal = { enable = true; + # TODO + config.common.default = "*"; extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; diff --git a/modules/kmscon.nix b/modules/kmscon.nix new file mode 100644 index 0000000..4c859bd --- /dev/null +++ b/modules/kmscon.nix @@ -0,0 +1,73 @@ +{ + pkgs, + config, + lib, + ... +}: let + # generate shell command options for kmscon fom an attrset + generateOptions = with builtins; ( + opts: + toString ( + attrValues ( + mapAttrs (name: value: "--${name} ${toString value}") opts + ) + ) + ); + # generate a hexadecimal number lookup table to get integers from them + hexLookupTable = with lib; (listToAttrs (genList (i: { + name = let + r = toHexString i; + in ( + # pad with 0 in front if only 1 digit + if (stringLength r) == 1 + then "0${r}" + else r + ); + value = toString i; + }) + 256)); + # "parse" hex color strings and convert them to kmscon options + hexToOpt = with lib; (color: + concatStringsSep "," [ + (getAttr (substring 1 2 (toUpper color)) hexLookupTable) + (getAttr (substring 3 2 (toUpper color)) hexLookupTable) + (getAttr (substring 5 2 (toUpper color)) hexLookupTable) + ]); +in { + services.kmscon = { + enable = true; + fonts = [ + { + name = "FiraCode Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["FiraCode"];}; + } + ]; + extraConfig = "font-size=14"; + # extraOptions = "--term xterm-256color"; + extraOptions = generateOptions { + xkb-layout = config.services.xserver.xkb.layout; + xkb-variant = config.services.xserver.xkb.variant; + + palette = "custom"; + palette-foreground = hexToOpt "#ebdbb2"; + palette-background = hexToOpt "#282828"; + palette-black = hexToOpt "#282828"; + palette-red = hexToOpt "#cc241d"; + palette-green = hexToOpt "#98971a"; + palette-yellow = hexToOpt "#d79921"; + palette-blue = hexToOpt "#458588"; + palette-magenta = hexToOpt "#b16286"; + palette-cyan = hexToOpt "#689d6a"; + palette-light-grey = hexToOpt "#a89984"; + palette-dark-grey = hexToOpt "#928374"; + palette-light-red = hexToOpt "#fb4934"; + palette-light-green = hexToOpt "#b8bb26"; + palette-light-yellow = hexToOpt "#fabd2f"; + palette-light-blue = hexToOpt "#83a598"; + palette-light-magenta = hexToOpt "#d3869b"; + palette-light-cyan = hexToOpt "#8ec07c"; + palette-white = hexToOpt "#ebdbb2"; + }; + hwRender = true; + }; +} diff --git a/other/config.nu b/other/config.nu index cda795c..c590b75 100644 --- a/other/config.nu +++ b/other/config.nu @@ -782,9 +782,9 @@ def start_zellij [] { start_zellij def nsp [ - program: string + ...programs: string ] { - nix shell $"nixpkgs#$program" + nix shell ...($programs | each {|it| $"nixpkgs#($it)" }) } def lcr [ @@ -806,6 +806,17 @@ def glog [ | split column "»¦«" commit subject name email date } +def ed [ + file: path + ...cmdargs: string +] { + let ext = $file | path parse | get extension; + match $ext { + "typ" => {|| zellij run --direction down -- typst watch $file --open ($cmdargs | str join ' ') } + }; + hx $file +} + alias gnix = cd ~/nix-configs; alias grepo = cd ~/Documents/repos; alias wh = wormhole-rs;