diff --git a/flake.lock b/flake.lock index 687391e..41156a4 100644 --- a/flake.lock +++ b/flake.lock @@ -28,11 +28,11 @@ ] }, "locked": { - "lastModified": 1734366194, - "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", + "lastModified": 1742234739, + "narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=", "owner": "nix-community", "repo": "home-manager", - "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", + "rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59", "type": "github" }, "original": { @@ -44,11 +44,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1734323986, - "narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=", + "lastModified": 1742268799, + "narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "394571358ce82dff7411395829aa6a3aad45b907", + "rev": "da044451c6a70518db5b730fe277b70f494188f1", "type": "github" }, "original": { @@ -60,11 +60,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1734424634, - "narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=", + "lastModified": 1742288794, + "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33", + "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", "type": "github" }, "original": { @@ -81,11 +81,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1734616194, - "narHash": "sha256-J90ItNNG+V2tneyHGHDCTb/WBxrpobxl+SsiQGVxOAI=", + "lastModified": 1742392354, + "narHash": "sha256-zWsw/tQ45G92yoG+ievU9nVUa3e807nQ6YpsdxcoOYM=", "owner": "nix-community", "repo": "nur", - "rev": "89621e43228d2941138a4d54a24924cd70d12bfe", + "rev": "339f1d2fd68fc1e33ece1f94ee2ab4b4badecbf7", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e02af5f..5f1b73b 100644 --- a/flake.nix +++ b/flake.nix @@ -22,10 +22,12 @@ ./system/desktop.nix ./system/hardware/nova.nix ./system/gnome.nix + ./system/sway.nix ./system/steam.nix ./system/btrbk.nix ./system/yubikey.nix ./system/alt.nix + ./system/guest.nix ]; }; @@ -110,6 +112,13 @@ ./home/alt.nix ]; }; + guest = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default; + extraSpecialArgs = { inherit inputs; }; + modules = [ + ./home/guest.nix + ]; + }; }; }; } diff --git a/home/castget/castget.conf b/home/castget/castget.conf index 8db9a89..0b9d87a 100644 --- a/home/castget/castget.conf +++ b/home/castget/castget.conf @@ -6,9 +6,22 @@ id3album=drei90 [50plus2] url=https://50plus2.podigee.io/feed/mp3 +id3album=50+2 [latenightlinux] -url=https://latenightlinux.com/feed/all +url=https://latenightlinux.com/feed/mp3 + +[linuxdevtime] +url=https://latenightlinux.com/feed/extra + +[linuxafterdark] +url=https://linuxafterdark.net/feed/podcast + +[linuxmatters] +url=https://linuxmatters.sh/episode/index.xml + +[2.5admins] +url=https://2.5admins.com/feed/podcast [schlusskonferenz] url=https://schlusskonferenz.podigee.io/feed/mp3 @@ -27,9 +40,9 @@ url=https://www.eintracht-podcast.de/feed/mp3 # url=https://cdn.julephosting.de/podcasts/573-edeltalk-mit-dominik-kevin/feed.rss # id3album=Edeltalk -[musikisteinewaffe] -url=https://www.radioeins.de/archiv/podcast/ton_steine_scherben.xml/feed=podcast.xml -id3album=Musik ist eine Waffe +[logbuchnetzpolitik] +url=https://feeds.metaebene.me/lnp/mp3 +id3album=Logbuch Netzpolitik [*] id3contenttype=Podcast diff --git a/home/default.nix b/home/default.nix index f63ed39..5db21a5 100644 --- a/home/default.nix +++ b/home/default.nix @@ -15,6 +15,7 @@ # text publishing libreoffice + jdk poppler_utils zotero @@ -43,10 +44,13 @@ ./slim-desktop.nix ./gnome ./firefox.nix + ./librewolf.nix ./tex.nix ./fonts.nix ]; programs.obs-studio.enable = true; + programs.kitty.enable = true; + } diff --git a/home/firefox.nix b/home/firefox.nix index e4856d0..efb192b 100644 --- a/home/firefox.nix +++ b/home/firefox.nix @@ -143,7 +143,7 @@ user_pref("intl.regional_prefs.use_os_locales", true); user_pref("media.eme.enabled", true); user_pref("network.trr.custom_uri", "https://dns.quad9.net/dns-query "); - user_pref("network.trr.mode", 3); + user_pref("network.trr.mode", 2); user_pref("network.trr.uri", "https://dns.quad9.net/dns-query"); user_pref("permissions.default.desktop-notification", 2); user_pref("privacy.annotate_channels.strict_list.enabled", true); diff --git a/home/fonts.nix b/home/fonts.nix index 6db14f8..1aca76a 100644 --- a/home/fonts.nix +++ b/home/fonts.nix @@ -4,6 +4,7 @@ home.packages = with pkgs; [ anonymousPro cantarell-fonts + cascadia-code charis-sil cm_unicode corefonts @@ -11,6 +12,7 @@ dotcolon-fonts freefont_ttf gyre-fonts + hack-font hubot-sans liberation_ttf libertine diff --git a/home/gnome/default.nix b/home/gnome/default.nix index d21b3c1..19c77f1 100644 --- a/home/gnome/default.nix +++ b/home/gnome/default.nix @@ -23,6 +23,9 @@ "org/gnome/mutter" = { dynamic-workspaces = true; }; + "org/gnome/mutter/keybindings" = { + switch-monitor = []; + }; "org/gnome/desktop/session" = { idle-delay = 0; }; @@ -31,13 +34,16 @@ }; "org/gnome/settings-daemon/plugins/media-keys" = { screenreader = []; - magnifier = []; + magnifier = ["z"]; magnifier-zoom-in = []; magnifier-zoom-out = []; help = []; + logout = ["q"]; }; "org/gnome/shell/keybindings" = { toggle-quick-settings = ["comma"]; + toggle-message-tray = ["n"]; + toggle-overview = ["a"]; }; "org/gnome/desktop/wm/keybindings" = { move-to-monitor-down = []; @@ -84,6 +90,8 @@ switch-to-application-2 = []; switch-to-application-3 = []; switch-to-application-4 = []; + toggle-fullscreen = ["f"]; + begin-resize = ["r"]; }; }; xdg.configFile."run-or-raise/shortcuts.conf".source = ./run-or-raise.conf; diff --git a/home/gnome/run-or-raise.conf b/home/gnome/run-or-raise.conf index 2361354..783e5a5 100644 --- a/home/gnome/run-or-raise.conf +++ b/home/gnome/run-or-raise.conf @@ -14,12 +14,10 @@ # # This line cycles any open gnome-terminal (matched by wm_class = Gnome-terminal on Ubuntu 17.10) OR if not found, launches new one. # If you're using Arch, you may want to match by wm_class = gnome-terminal-server , just check yourself by Alt+F2/lg/Windows -t,gnome-terminal,gnome-terminal-server, -n,nautilus,, -f,firefox,, +b,firefox,, +f,nautilus,, return,foot,, -x,keepassxc,,, -q,qutebrowser,, +p,keepassxc,,, # You may use regular expression in title or wm_class. # Just put the regular expression between slashes. diff --git a/home/guest.nix b/home/guest.nix new file mode 100644 index 0000000..c7f43a7 --- /dev/null +++ b/home/guest.nix @@ -0,0 +1,55 @@ +{ config, pkgs, inputs, lib, ... }: + +{ + home.username = "guest"; + home.homeDirectory = "/home/guest"; + home.stateVersion = "22.11"; + + nixpkgs = { + config = { + allowUnfree = true; + allowUnfreePredicate = (_: true); + }; + }; + + programs.home-manager.enable = true; + + xdg.userDirs = { + enable = true; + createDirectories = true; + download = "${config.home.homeDirectory}/tmp"; + music = "${config.home.homeDirectory}/media/music"; + pictures = "${config.home.homeDirectory}/media/img"; + videos = "${config.home.homeDirectory}/media/vid"; + documents = "${config.home.homeDirectory}/misc"; + templates = "${config.xdg.dataHome}/templates"; + }; + + home.packages = with pkgs; [ + fzf + silver-searcher + tmux + nodejs + wl-clipboard + qbittorrent + vlc + # mullvad-vpn + ffmpeg + libnotify + ]; + + imports = [ + ./gnome + ./firefox.nix + ./foot.nix + ./fish.nix + ./tmux + ./nvim + ]; + + programs.nix-index = { + enable = true; + enableFishIntegration = true; + }; + +} diff --git a/home/librewolf.nix b/home/librewolf.nix new file mode 100644 index 0000000..3991dc1 --- /dev/null +++ b/home/librewolf.nix @@ -0,0 +1,5 @@ +{ config, pkgs, ... }: + +{ + programs.librewolf.enable = true; +} diff --git a/home/mail/default.nix b/home/mail/default.nix index 4898270..060cc3f 100644 --- a/home/mail/default.nix +++ b/home/mail/default.nix @@ -35,7 +35,7 @@ passwordCommand = "secret-tool lookup server uni-frankfurt.de account tstraube"; signature = { text = '' - Dr. Till Straube (he, him, his) + Dr. Till Straube (he/him) Dept. of Human Geography Goethe University Frankfurt ''; @@ -88,7 +88,7 @@ notmuch.enable = true; userName = "till"; signature.text = '' - Till Straube (he, him, his) + Till Straube (he/him) PGP: https://keys.openpgp.org/search?q=till@ktiu.net ''; signature.showSignature = "append"; diff --git a/home/minimal.nix b/home/minimal.nix index 4a0c137..11d51ec 100644 --- a/home/minimal.nix +++ b/home/minimal.nix @@ -64,6 +64,6 @@ programs.bottom = { enable = true; - settings.flags.color = "default-light"; + settings.styles.theme = "default-light"; }; } diff --git a/home/nvim/ftplugin/markdown.vim b/home/nvim/ftplugin/markdown.vim index a80f805..8d0d7af 100644 --- a/home/nvim/ftplugin/markdown.vim +++ b/home/nvim/ftplugin/markdown.vim @@ -5,7 +5,6 @@ setlocal breakat-=@ setlocal makeprg=Rscript\ -e\ 'publishR::render(\\"%\\")' -" nnoremap oh :! xdg-open %:r.html nnoremap oh :! xdg-open %:r.html nnoremap op :! xdg-open %:r.pdf nnoremap ow :! xdg-open %:r.docx diff --git a/home/r.nix b/home/r.nix index 7ac8a13..8c82e4b 100644 --- a/home/r.nix +++ b/home/r.nix @@ -34,27 +34,6 @@ propagatedBuildInputs = []; nativeBuildInputs = []; }; - readODS = pkgs.rPackages.buildRPackage { - name = "readODS"; - src = pkgs.fetchFromGitHub { - owner = "ropensci"; - repo = "readODS"; - rev = "011a89f57169d6f7c8796954e2365f0bd9b5765f"; - sha256 = "1hg8w46l5ifbaifmkmxxdvbamlj7bkadq956fab5063a5yrxfzwm"; - }; - propagatedBuildInputs = [xml2 cellranger readr stringi purrr zip]; - nativeBuildInputs = []; - }; - # readODS = pkgs.rPackages.buildRPackage { - # name = "readODS"; - # src = builtins.fetchGit { - # url = "https://git@github.com/ktiu/readODS/"; - # ref = "v1.8"; - # rev = "d7e9c54a3a193979ea4195ac36938aa55cd5360f"; - # }; - # propagatedBuildInputs = [xml2 cellranger readr stringi purrr zip]; - # nativeBuildInputs = []; - # }; in [ bookdown catmaply @@ -71,6 +50,7 @@ languageserver magrittr mapproj + networkD3 openxlsx plotly progress @@ -88,6 +68,7 @@ rvest sf stringr + swirl testthat tidyr tidyverse @@ -96,7 +77,7 @@ yaml lectuR publishR - goethR + # goethR ggtree ]; R-packed = rWrapper.override { packages = customPackages; }; diff --git a/home/slim-desktop.nix b/home/slim-desktop.nix index 419c414..4668a71 100644 --- a/home/slim-desktop.nix +++ b/home/slim-desktop.nix @@ -40,6 +40,8 @@ hunspellDicts.en_US hunspellDicts.th_TH hyphen + hyphenDicts.de_DE + hyphenDicts.en_US pandoc imagemagick ghostscript diff --git a/home/tex.nix b/home/tex.nix index 79537f9..33892ed 100644 --- a/home/tex.nix +++ b/home/tex.nix @@ -32,6 +32,7 @@ let nowidow pdfcol pdfpages + pdfx pgf qrcode scheme-medium @@ -51,6 +52,7 @@ let transparent was wrapfig + xmpincl xpatch xstring xtab diff --git a/system/alt.nix b/system/alt.nix index 3fd8b7e..726c48b 100644 --- a/system/alt.nix +++ b/system/alt.nix @@ -11,7 +11,4 @@ ]; shell = pkgs.fish; }; - services.xserver.displayManager.gdm.settings = { - greeter.Exclude = "bin,root,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,nobody4,noaccess,postgres,pvm,rpm,nfsnobody,pcap,alt"; - }; } diff --git a/system/btrbk.nix b/system/btrbk.nix index 2d23e69..0981e09 100644 --- a/system/btrbk.nix +++ b/system/btrbk.nix @@ -10,7 +10,7 @@ snapshot_preserve_min = "4d"; snapshot_dir = "/btrbk_snapshots"; target = "/run/media/till/backup/${config.networking.hostName}"; - target_preserve_min = "latest"; + target_preserve_min = "no"; target_preserve = "10d 10w 24m"; }; }; diff --git a/system/default.nix b/system/default.nix index db0d1ec..b30e810 100644 --- a/system/default.nix +++ b/system/default.nix @@ -12,6 +12,8 @@ programs.fish.enable = true; + users.mutableUsers = true; + users.users.till = { isNormalUser = true; description = "Till"; diff --git a/system/gnome.nix b/system/gnome.nix index 06799f8..923c542 100644 --- a/system/gnome.nix +++ b/system/gnome.nix @@ -2,7 +2,10 @@ { services.xserver.enable = true; - services.xserver.displayManager.gdm.enable = true; + services.xserver.displayManager = { + gdm.enable = true; + }; + services.xserver.desktopManager.gnome.enable = true; services.gnome.gnome-browser-connector.enable = true; environment.gnome.excludePackages = (with pkgs; [ diff --git a/system/guest.nix b/system/guest.nix new file mode 100644 index 0000000..31b9b71 --- /dev/null +++ b/system/guest.nix @@ -0,0 +1,14 @@ +{ config, pkgs, ... }: + +{ + users.users.guest = { + home = "/home/guest"; + isNormalUser = true; + group = "users"; + description = "Guest"; + extraGroups = [ + "networkmanager" + ]; + shell = pkgs.fish; + }; +} diff --git a/system/hyprland.nix b/system/hyprland.nix new file mode 100644 index 0000000..af157b3 --- /dev/null +++ b/system/hyprland.nix @@ -0,0 +1,17 @@ +{ config, pkgs, ... }: + +{ + programs.uwsm.enable = true; + + programs.hyprland = { + enable = true; + withUWSM = true; + }; + + programs.waybar.enable = true; + + environment.systemPackages = with pkgs; [ + swaynotificationcenter + tofi + ]; +} diff --git a/system/plasma.nix b/system/plasma.nix index 6ebe62e..91ceacc 100644 --- a/system/plasma.nix +++ b/system/plasma.nix @@ -1,6 +1,6 @@ { config, pkgs, ... }: { - services.xserver.enable = true; - services.xserver.desktopManager.plasma6.enable = true; + services.xserver.enable = true; + services.xserver.desktopManager.plasma6.enable = true; } diff --git a/system/sway.nix b/system/sway.nix new file mode 100644 index 0000000..609c87d --- /dev/null +++ b/system/sway.nix @@ -0,0 +1,20 @@ +{ config, pkgs, ... }: + +{ + programs.sway = { + enable = true; + wrapperFeatures.gtk = true; + }; + + programs.waybar.enable = true; + + services.gnome.gnome-keyring.enable = true; + + environment.systemPackages = with pkgs; [ + grim + slurp + wl-clipboard + swaynotificationcenter + tofi + ]; +}