diff options
Diffstat (limited to 'home')
-rw-r--r-- | home/profiles/alacritty.nix | 51 | ||||
-rw-r--r-- | home/profiles/darwin.nix | 1 | ||||
-rw-r--r-- | home/profiles/dev.nix | 9 | ||||
-rw-r--r-- | home/profiles/firefox.nix | 59 | ||||
-rw-r--r-- | home/profiles/gtk.nix | 9 | ||||
-rw-r--r-- | home/profiles/mako.nix | 25 | ||||
-rw-r--r-- | home/profiles/matrix.nix | 18 | ||||
-rw-r--r-- | home/profiles/nas.nix | 99 | ||||
-rw-r--r-- | home/profiles/sway.nix | 175 | ||||
-rw-r--r-- | home/profiles/waybar.nix | 118 | ||||
-rw-r--r-- | home/profiles/wofi.nix | 13 | ||||
-rw-r--r-- | home/profiles/workstation.nix | 115 | ||||
-rw-r--r-- | home/profiles/ytdlp.nix | 37 |
13 files changed, 7 insertions, 722 deletions
diff --git a/home/profiles/alacritty.nix b/home/profiles/alacritty.nix deleted file mode 100644 index 2789f12..0000000 --- a/home/profiles/alacritty.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ - programs.alacritty = { - enable = true; - settings = { - env = { - TERM = "xterm-256color"; - }; - - live_config_reload = true; - draw_bold_text_with_bright_colors = true; - selection = { save_to_clipboard = true; }; - - colors = { - primary = { - background = "#000000"; - foreground = "#D3D7CF"; - }; - - normal = { - black = "#2E3436"; - red = "#CC0000"; - green = "#4E9A06"; - yellow = "#C4A000"; - blue = "#3465A4"; - magenta = "#EF33C0"; - cyan = "#04B5B8"; - white = "#D3D7CF"; - }; - - bright = { - black = "#555753"; - red = "#EF2929"; - green = "#8AE234"; - yellow = "#FCE94F"; - blue = "#729FCF"; - magenta = "#EE38DA"; - cyan = "#34E2E2"; - white = "#EEEEEC"; - }; - }; - font = { - size = 13; - normal.family = "Source Code Pro"; - }; - cursor = { - style.blinking = "Never"; - unfocused_hollow = true; - }; - }; - }; -} diff --git a/home/profiles/darwin.nix b/home/profiles/darwin.nix index c86375f..ef2787d 100644 --- a/home/profiles/darwin.nix +++ b/home/profiles/darwin.nix @@ -12,7 +12,6 @@ home.packages = with pkgs; [ direnv - dive jq nixd nix-direnv diff --git a/home/profiles/dev.nix b/home/profiles/dev.nix index dd9409d..a860027 100644 --- a/home/profiles/dev.nix +++ b/home/profiles/dev.nix @@ -22,10 +22,15 @@ in home.packages = with pkgs; [ go-tools - pythonEnv - google-cloud-sdk golangci-lint gopls + + dive # explore layers in docker images + + pythonEnv + + google-cloud-sdk + ]; home.sessionPath = [ diff --git a/home/profiles/firefox.nix b/home/profiles/firefox.nix deleted file mode 100644 index beac5ca..0000000 --- a/home/profiles/firefox.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ pkgs, lib, config, ... }: -{ - programs.firefox = { - enable = true; - profiles = { - default = { - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ - pkgs.nur.repos.rycee.firefox-addons."1password-x-password-manager" - consent-o-matic - refined-github - sponsorblock - ublock-origin - ]; - settings = { - ## nix handle updates - "app.update.auto" = false; - "browser.bookmarks.showMobileBookmarks" = false; - "browser.compactmode.show" = true; - "browser.contentblocking.category" = "strict"; - "browser.search.countryCode" = "US"; - "browser.search.defaultenginename" = "DuckDuckGo"; - "browser.search.isUS" = true; - "browser.search.region" = "US"; - "browser.search.selectedEngine" = "DuckDuckGo"; - ## don't check if it's the default browser - "browser.shell.checkDefaultBrowser" = false; - "browser.startup.homepage" = "https://duckduckgo.com"; - "browser.urlbar.placeholderName" = "DuckDuckGo"; - ## keep this with ff 96 - "media.ffmpeg.vaapi.enabled" = true; - ## remove on ff 96 - "media.ffvpx.enabled" = false; - ## remove on ff 96 - "media.navigator.mediadatadecoder_vpx_enabled" = true; - "media.peerconnection.enabled" = true; - ## keep this with ff 96 - "media.rdd-ffmpeg.enabled" = true; - ## remove on ff 96 - "media.rdd-vpx.enabled" = false; - ## Block third-party cookies - "network.cookie.cookieBehavior" = 1; - "privacy.donottrackheader.enabled" = true; - "privacy.trackingprotection.enabled" = true; - "privacy.trackingprotection.socialtracking.enabled" = true; - - "font.name.monospace.x-western" = "Source Code Pro"; - "font.name.sans-serif.x-western" = "DejaVu Sans Serif"; - "font.name.serif.x-western" = "DejaVu Serif"; - }; - - userChrome = '' - #TabsToolbar { - visibility: collapse; - } - ''; - }; - }; - }; -} diff --git a/home/profiles/gtk.nix b/home/profiles/gtk.nix deleted file mode 100644 index 4884e4a..0000000 --- a/home/profiles/gtk.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ config, lib, pkgs, ... }: { - gtk = { - enable = true; - font = { - package = pkgs.roboto; - name = "Roboto Medium 11"; - }; - }; -} diff --git a/home/profiles/mako.nix b/home/profiles/mako.nix deleted file mode 100644 index f31b417..0000000 --- a/home/profiles/mako.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ config, lib, pkgs, ... }: -{ - home.packages = [ - pkgs.libnotify - ]; - - # All the options are documented via `man 5 mako` - services.mako = { - enable = true; - font = "Roboto"; - backgroundColor = "#000021DD"; - textColor = "#FFFFFFFF"; - borderSize = 0; - borderRadius = 15; - icons = true; - iconPath = "${pkgs.moka-icon-theme}/share/icons/Moka"; - markup = true; - actions = true; - defaultTimeout = 3000; - padding = "20"; - height = 180; - width = 400; - layer = "overlay"; - }; -} diff --git a/home/profiles/matrix.nix b/home/profiles/matrix.nix deleted file mode 100644 index bf85482..0000000 --- a/home/profiles/matrix.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ config, lib, pkgs, ... }: { - services.pantalaimon = { - enable = true; - settings = { - Default = { - LogLevel = "Debug"; - SSL = true; - }; - local-matrix = { - Homeserver = "https://matrix.kifla.be"; - ListenAddress = "localhost"; - ListenPort = 8009; - IgnoreVerification = false; - UseKeyring = false; - }; - }; - }; -} diff --git a/home/profiles/nas.nix b/home/profiles/nas.nix deleted file mode 100644 index d23f60b..0000000 --- a/home/profiles/nas.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ config, lib, pkgs, ... }: -let - bc-to-beet = pkgs.writeShellApplication { - name = "bc-to-beet"; - runtimeInputs = [ pkgs.beets ]; - text = '' - rm -rf ~/import/music/tmp-bc - unzip -d ~/import/music/tmp-bc ~/import/music/album.zip - beet import ~/import/music/tmp-bc - rm -rf ~/import/music/tmp-bc - rm -rf ~/import/music/album.zip - ''; - }; -in -{ - imports = [ - ./ytdlp.nix - ]; - - home.packages = with pkgs; [ - bc-to-beet - flac - abcde - (pkgs.writers.writeDashBin "rip-flac" '' - ${pkgs.abcde}/bin/abcde -c ~/.config/abcde/config - '') - ]; - - # configuration file for abcde (see man 1 abcde) - xdg.configFile."abcde/config".source = pkgs.writeText "config" '' - ACTIONS=default,getalbumart - - ALBUMARTFILE="cover.jpg" - ALBUMARTTYPE="JPG" - - CDDBMETHOD=musicbrainz - - # cd ripping program - CDROMREADERSYNTAX=cdparanoia - CDPARANOIA=cdparanoia - CDPARANOIAOPTS="--never-skip=10" - - # move here - OUTPUTDIR="$HOME/import/music" - - # output type - FLACENCODERSYNTAX=flac - OUTPUTTYPE=flac - FLAC=flac - # --best is the same as -8 (highest compression) (also see -e) - FLACOPTS='--verify --best' - - EXTRAVERBOSE=2 - EJECTCD=y - MAXPROCS=4 - - post_encode () - { - # beets fixes some things (e.g. moving multi-disc albums together) and - # adds some extra info (e.g. genres with lastgenre) - echo "-------------- beets:" - beet import "$HOME/import/music" - } - ''; - - programs.beets = { - enable = true; - settings = { - directory = "/data/fast/music"; - plugins = - "fromfilename discogs duplicates fetchart embedart badfiles lastgenre scrub"; - paths = { - default = "$albumartist/$album%aunique{}/$track $title"; - singleton = "Singles/$artist/$title"; - comp = "Compilations/$album%aunique{}/$track - $title"; - "albumtype:soundtrack" = "Soundtracks/$album ($year)/$track $title"; - }; - import = { - copy = false; - move = true; - }; - va_name = "Various Artists"; - embedart = { ifempty = true; }; - - lastgenre = { - auto = false; - canonical = true; - fallback = "unknown"; - force = true; - prefer_specific = true; - }; - - fetchart = { - cautious = true; - sources = "filesystem coverart itunes amazon lastfm wikipedia"; - }; - }; - }; -} diff --git a/home/profiles/sway.nix b/home/profiles/sway.nix deleted file mode 100644 index e86ff48..0000000 --- a/home/profiles/sway.nix +++ /dev/null @@ -1,175 +0,0 @@ -{ config, lib, pkgs, ... }: -let - modifier = "Mod4"; # `Super` key - fonts = { - names = [ "Roboto" "sans-serif" ]; - style = "Bold"; - size = 10.0; - }; - -in -{ - imports = [ - ./gtk.nix - ./mako.nix - ./waybar.nix - ./wofi.nix - ]; - - home.packages = with pkgs; [ - wlogout - brightnessctl - pulseaudio - grim - slurp - polkit_gnome - xsettingsd - swaylock - swayidle - wl-clipboard - ]; - - home.sessionVariables = { - MOZ_ENABLE_WAYLAND = "1"; - XDG_CURRENT_DESKTOP = "sway"; - XDG_SESSION_TYPE = "wayland"; - }; - - programs = { - zsh.loginExtra = '' - if [ $(ps ax | grep "[s]sh-agent" | wc -l) -eq 0 ] ; then - eval $(ssh-agent -s) > /dev/null - fi - if [ "$(tty)" = "/dev/tty1" ]; then - exec sway &> /dev/null - fi - ''; - - zsh.profileExtra = '' - if [ $(ps ax | grep "[s]sh-agent" | wc -l) -eq 0 ] ; then - eval $(ssh-agent -s) > /dev/null - fi - if [ "$(tty)" = "/dev/tty1" ]; then - exec sway &> /dev/null - fi - ''; - }; - - wayland.windowManager.sway = { - enable = true; - # in order to import some variables (e.g. PATH) so that all the - # units that will be started have all the required environment - # variables - extraSessionCommands = "systemctl --user import-environment"; - # this will start sway-session.target and run - # dbus-update-activation-environment - systemdIntegration = true; - config = { - inherit fonts modifier; - # FIXME: this should be a variable - terminal = "alacritty"; - menu = ''${pkgs.wofi}/bin/wofi -S drun -p "app:" -L 10''; - bars = [ ]; - keybindings = lib.mkOptionDefault { - # control the volume - "XF86AudioRaiseVolume" = - "exec ${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ +5%"; - "XF86AudioLowerVolume" = - "exec ${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ -5%"; - "XF86AudioMute" = - "exec ${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle"; - "XF86AudioMicMute" = - "exec ${pkgs.pulseaudio}/bin/pactl set-source-mute @DEFAULT_SOURCE@ toggle"; - - # control brightness - "XF86MonBrightnessDown" = - "exec ${pkgs.brightnessctl}/bin/brightnessctl set 5%-"; - "XF86MonBrightnessUp" = - "exec ${pkgs.brightnessctl}/bin/brightnessctl set +5%"; - - # logout - "${modifier}+Escape" = "exec ${pkgs.wlogout}/bin/wlogout"; - - # screenshot - "${modifier}+s" = - "exec ${pkgs.grim}/bin/grim $(xdg-user-dir DOCUMENTS)/screenshots/$(date +'%Y-%m-%d-%H%M%S_screenshot.png')"; - "${modifier}+Shift+s" = - "exec ${pkgs.slurp}/bin/slurp | ${pkgs.grim}/bin/grim -g - $(xdg-user-dir DOCUMENTS)/screenshots/$(date +'%Y-%m-%d-%H%M%S_screenshot.png')"; - - # File Manager - "${modifier}+p" = "exec ${pkgs.pcmanfm}/bin/pcmanfm"; - }; - - # use `swaymsg -t get_tree' to get the title/name/ID of the applications - window = { - commands = [ - { - criteria.class = ".blueman-manager-wrapped"; - command = "floating enable"; - } - { - criteria.class = "Pavucontrol"; - command = "floating enable"; - } - ]; - }; - - input = { - "*" = { - "xkb_layout" = "us,fr"; - # map capslock to ctrl, and switch layout using shift+caps - "xkb_options" = "ctrl:nocaps,grp:shift_caps_toggle"; - }; - }; - - assigns = { - "1" = [{ app_id = "emacs"; }]; - "2" = [{ app_id = "Alacritty"; }]; - "3" = [{ app_id = "firefox"; }]; - "4" = [{ app_id = "org.gnome.Fractal"; }]; - }; - - output = { - "*" = { - scale = "1.5"; - bg = "#2E3440 solid_color"; - }; - # This is for aptos - "eDP-1" = { scale = "1.3"; }; - }; - }; - }; - - xdg.configFile."swaylock/config".source = pkgs.writeText "config" '' - daemonize - hide-keyboard-layout - indicator-caps-lock - color=2E3440 - font=Roboto - ''; - - services.swayidle = { - enable = true; - events = [ - { - event = "before-sleep"; - command = "${pkgs.swaylock}/bin/swaylock -fF"; - } - { - event = "lock"; - command = "${pkgs.swaylock}/bin/swaylock -fF"; - } - ]; - timeouts = [ - { - timeout = 300; - command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\""; - resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\""; - } - { - timeout = 310; - command = "${pkgs.systemd}/bin/loginctl lock-session"; - } - ]; - }; -} diff --git a/home/profiles/waybar.nix b/home/profiles/waybar.nix deleted file mode 100644 index a08dc6d..0000000 --- a/home/profiles/waybar.nix +++ /dev/null @@ -1,118 +0,0 @@ -{ config, lib, pkgs, ... }: -{ - programs.waybar = { - enable = true; - systemd.enable = true; - - settings = [{ - layer = "bottom"; - height = 25; - position = "top"; - margin-top = 0; - margin-left = 0; - margin-right = 0; - margin-bottom = 0; - modules-left = [ "sway/workspaces" "sway/mode" ]; - modules-right = [ "custom/systemd" "pulseaudio" "network" "battery" "clock" "tray" ]; - "sway/workspaces" = { - format = "{name}"; - disable-scroll = true; - }; - "sway/mode" = { format = "{}"; }; - tray = { spacing = 10; }; - clock = { format = "{: %a %b %d %R}"; }; - battery = { - states = { - warning = 30; - critical = 15; - }; - format = "bat:{capacity}%"; - tooltip = true; - tooltip-format = "{timeTo} ({capacity}%)"; - }; - "custom/systemd" = { - exec = "${pkgs.tools.waybar-systemd-units}/bin/waybar-systemd-units"; - format = "failed units: {}"; - return-type = "json"; - interval = 60; - }; - pulseaudio = { - format = "vol:{volume}%"; - format-bluetooth = "bt:{volume}%"; - format-bluetooth-muted = "bt:{volume}%"; - format-muted = "vol:{volume}%"; - on-click = "pavucontrol"; - }; - "network" = { - format-wifi = "{essid}:{signalStrength}%"; - format-ethernet = "{ipaddr}/{cidr}"; - format-linked = "{ifname} (No IP)"; - format-disconnected = "network unavailable"; - format-alt = "{ifname}: {ipaddr}/{cidr}"; - tooltip = false; - }; - }]; - }; - - programs.waybar.style = pkgs.writeText "style.css" '' - * { - border-radius: 0; - border: none; - font-family: "Roboto Mono, sans-serif"; - font-size: 15px; - color: #C5C8C6; - min-height: 24px; - } - window#waybar { - background-color: #282A2E; - color: #C5C8C6; - } - #window { - font-weight: bold; - font-family: "Roboto Mono, sans-serif"; - } - #workspaces button { - padding: 0 5px; - background-color: transparent; - color: #C5C8C6; - } - #workspaces button.focused { - background-color: #373B41; - border-bottom: 2px solid #F0C674; - } - #clock, - #battery, - #network, - #pulseaudio, - #tray, - #mode { - padding: 0 6px; - margin: 0 3px; - } - #battery.warning { - border-bottom: 2px solid #efc673; - } - #battery.critical { - border-bottom: 2px solid #ef8773; - } - #network { - /* No styles */ - } - #network.disconnected { - color: #efc673; - } - #pulseaudio { - /* No styles */ - } - #pulseaudio.muted { - color: #8c8f91; - } - #custom-systemd { - color: #8c8f91; - } - #custom-systemd.errors { - color: #C5C8C6; - border-bottom: 2px solid #ef8773; - } - ''; -} diff --git a/home/profiles/wofi.nix b/home/profiles/wofi.nix deleted file mode 100644 index 7140650..0000000 --- a/home/profiles/wofi.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ config, lib, pkgs, ... }: { - - home.packages = with pkgs; [ wofi ]; - - xdg.configFile."wofi/config".source = pkgs.writeText "config" '' - allow_images=true - image_size=25px - drun-display_generic=true - dynamic_lines=true - insensitive=true - run-cache_file=/dev/null - ''; -} diff --git a/home/profiles/workstation.nix b/home/profiles/workstation.nix deleted file mode 100644 index 7fa76aa..0000000 --- a/home/profiles/workstation.nix +++ /dev/null @@ -1,115 +0,0 @@ -{ config, lib, pkgs, ... }: -let - restic-nas = pkgs.writeShellApplication - { - name = "restic-nas"; - runtimeInputs = [ pkgs.restic pkgs.tailscale pkgs.jq ]; - text = '' - NAS=$(tailscale status --json | jq -r '.Peer | map(select(.HostName == "tahoe"))[0].TailscaleIPs[0]') - - RESTIC_REPOSITORY="sftp:''${NAS}:/$(hostname)" - export RESTIC_REPOSITORY - export RESTIC_PASSWORD_FILE=/run/agenix/restic/repo-users - - sudo -E restic -o sftp.command="ssh backup@''${NAS} -i /run/agenix/restic/ssh-key -s sftp" "$@" - ''; - }; - - album-to-nas = pkgs.writeShellApplication { - name = "album-to-nas"; - runtimeInputs = [ pkgs.jq pkgs.tailscale ]; - text = '' - ALBUM_PATH="$1" - - NAS=$(tailscale status --json | jq -r '.Peer | map(select(.HostName == "tahoe"))[0].TailscaleIPs[0]') - - ssh "$NAS" mkdir -p ~/import/music - scp "$ALBUM_PATH" "$NAS:~/import/music/album.zip" - ssh "$NAS" bc-to-beet ~/import/music/album.zip - ''; - }; -in -{ - imports = [ - ./dev.nix - ./emacs.nix - ./alacritty.nix - ./tmux.nix - ./firefox.nix - ./yubikey.nix - ./ytdlp.nix - ]; - - home.packages = with pkgs; [ - # media - gnome3.eog - gnome3.evince - sublime-music - vlc - yt-dlp - - passage - tree - - element-desktop-wayland - - # scanning - tesseract - imagemagick - exiftool - sane-airscan - - transmission-remote-gtk - - # custom tools - album-to-nas - restic-nas - - # tools from external repositories - # x509-info - # gh-ssh-keys - # masked-emails - ]; - - programs.feh.enable = true; - programs.mpv = { - enable = true; - config = { - sub-auto = "fuzzy"; - vo = "gpu"; - hwdec = "auto-safe"; - gpu-context = "wayland"; - audio-display = "no"; - cache-pause = "no"; - cache = "yes"; - mute = "no"; - osc = "yes"; - screenshot-directory = "~/documents/screenshots/mpv-screenshots/"; - screenshot-format = "png"; - }; - scripts = lib.attrVals [ "sponsorblock" ] pkgs.mpvScripts; - }; - - services.gammastep = { - enable = true; - #TODO: this needs to come from locale.nix - latitude = 37.8715; - longitude = -122.273; - temperature = { - day = 5000; - night = 3700; - }; - }; - - home.sessionVariables = { - PASSAGE_DIR = "${config.xdg.dataHome}/passage/store"; - PASSAGE_IDENTITIES_FILE = "${config.xdg.dataHome}/passage/identities"; - # for now I have to default to rage, as the version of age is - # not recent enough to work with keys generated by - # age-plugin-yubikey - PASSAGE_AGE = "${pkgs.rage}/bin/rage"; - }; - - # enable bluetooth - services.blueman-applet.enable = true; -} diff --git a/home/profiles/ytdlp.nix b/home/profiles/ytdlp.nix deleted file mode 100644 index ce2e32c..0000000 --- a/home/profiles/ytdlp.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ pkgs, ... }: -{ - home.packages = with pkgs; [ - yt-dlp - ]; - - xdg.configFile."yt-dlp/config".source = pkgs.writeText "config" '' - # Preferred formats: - # 1. 1080p, combined, mp4 (for some non-youtube sites). - # 2. 1080p, combined, any format (in case mp4 is not available). - # 3. 1080p, best video + best audio (only available with separate video and audio on youtube). - # 4. >30fps (any resolution), best video + best audio (only available with separate video and audio on youtube). - # 5. 720p, pre-joined, because it is available on youtube. - # 6. <720p, best video + best audio (480p and some other lower resolutions are only available with separate video and audio on youtube). - # 7. When all else fails, take whatever youtube-dl thinks is the best (mainly for non-YT websites). - --format="best[height=1080][ext=mp4]/best[height=1080]/bestvideo[height=1080][ext=mp4]+bestaudio[ext=m4a]/bestvideo[fps>30][ext=mp4]+bestaudio[ext=m4a]/best[height=720][ext=mp4]/bestvideo[ext=mp4]+bestaudio[ext=m4a]/best" - - --continue - - --sub-langs all - --write-subs - - --convert-subs=srt - - --restrict-filenames - --output="$HOME/media/videos/%(uploader)s/%(playlist)s/%(upload_date)s-%(title)s.%(ext)s" - --merge-output-format mkv - - --embed-metadata - --embed-chapters - --embed-info-json - # create chapter entries to mark sponsor segments - --sponsorblock-mark all - - --yes-playlist - ''; -} |