From a61d9cd501a78731df3660cf46d18771936b75b7 Mon Sep 17 00:00:00 2001 From: Tristan Date: Wed, 19 Apr 2023 19:35:31 +0100 Subject: [PATCH] tidy up, add helix --- system/global/home.nix | 280 ++++++++++++++++++++++------------------- system/work/home.nix | 6 + 2 files changed, 159 insertions(+), 127 deletions(-) diff --git a/system/global/home.nix b/system/global/home.nix index 4534e13..c4c4e55 100644 --- a/system/global/home.nix +++ b/system/global/home.nix @@ -11,30 +11,29 @@ let terminal = "${pkgs.foot}/bin/foot"; chafa = "${pkgs.chafa}/bin/chafa"; exiftool = "${pkgs.exiftool}/bin/exiftool"; + wc = "${pkgs.coreutils}/bin/wc"; + xargs = "${pkgs.findutils}/bin/xargs"; + menu = "${pkgs.wofi}/bin/wofi --dmenu"; }; - my-scripts = [ - ( pkgs.writeShellScriptBin "menu" '' - wofi --dmenu - '' ) - - ( pkgs.writeShellScriptBin "play-pause" '' - if [ "$(${my-deps.playerctl} --list-all | wc -l)" -lt 2 ] + my-scripts = { + play-pause = (pkgs.writeShellScriptBin "play-pause" '' + if [ "$(${my-deps.playerctl} --list-all | ${ my-deps.wc } -l)" -lt 2 ] then ${my-deps.playerctl} play-pause else ${ my-deps.playerctl } --list-all | \ - xargs -I _ ${ my-deps.playerctl } --player _ metadata --format '_ - {{title}}' | \ - menu | awk '{print $1}' | \ - xargs -I _ ${ my-deps.playerctl } --player _ play-pause + ${ my-deps.xargs } -I _ ${ my-deps.playerctl } --player _ metadata --format '_ - {{title}}' | \ + ${ my-deps.menu } | ${pkgs.gawk}/bin/awk '{print $1}' | \ + ${ my-deps.xargs } -I _ ${ my-deps.playerctl } --player _ play-pause fi - '' ) + ''); - ( pkgs.writeShellScriptBin "bwmenu" '' + bwmenu = (pkgs.writeShellScriptBin "bwmenu" '' items="$(rbw list)" - echo "$items" | menu | xargs -I_ rbw get _ | wl-copy - '' ) + echo "$items" | ${ my-deps.menu } | xargs -I_ rbw get _ | wl-copy + ''); - ( pkgs.writeShellScriptBin "screenshot" '' + screenshot = (pkgs.writeShellScriptBin "screenshot" '' OUT_DIR=~/Pictures/Screenshots mkdir -p "$OUT_DIR" FILE=$OUT_DIR/$(date +"%Y-%m-%dT%H:%M:%SZ").png @@ -43,21 +42,21 @@ let ${my-deps.notify-send} "Screenshot Taken" "$FILE" cat "$FILE" | wl-copy -t image/png - '' ) + ''); - ( pkgs.writeShellScriptBin "brightness-down" '' + brightness-down = (pkgs.writeShellScriptBin "brightness-down" '' light -U 10 ${my-deps.notify-send} "Brightness" -h int:value:$(light) -a brightness-down -t 1000 - '' ) + ''); - ( pkgs.writeShellScriptBin "brightness-up" '' + brightness-up = (pkgs.writeShellScriptBin "brightness-up" '' light -A 10 ${my-deps.notify-send} "Brightness" -h int:value:$(light) -a brightness-up -t 1000 - '' ) - ]; - - brave-nightly = pkgs.callPackage ../../custom/brave-nightly/. {}; - lf-sixel = pkgs.callPackage ../../custom/lf-sixel/. {}; + ''); + }; + + brave-nightly = pkgs.callPackage ../../custom/brave-nightly/. { }; + lf-sixel = pkgs.callPackage ../../custom/lf-sixel/. { }; in { programs.home-manager.enable = true; @@ -72,6 +71,9 @@ in "inode/directory" = "lf.desktop;vscodium.desktop;pcmanfm.desktop"; }; defaultApplications = { + "image/png" = "imv.desktop"; + "image/jpeg" = "imv.desktop"; + "image/jpg" = "imv.desktop"; "inode/directory" = "lf.desktop"; "text/html" = "brave-browser.desktop"; "x-scheme-handler/http" = "brave-browser.desktop"; @@ -79,7 +81,7 @@ in }; }; - home.packages = with pkgs; [ + home.packages = (with pkgs; [ libnotify wl-clipboard wofi @@ -89,13 +91,21 @@ in libsixel lf-sixel yt-dlp + playerctl + pavucontrol brave brave-nightly logseq quickemu bitwarden - ] ++ my-scripts; + ]) ++ (with my-scripts; [ + play-pause + bwmenu + screenshot + brightness-up + brightness-down + ]); programs.fish = { enable = true; @@ -123,6 +133,7 @@ in systemdIntegration = true; # https://wiki.hyprland.org/Configuring/Variables/ extraConfig = '' + ## global hyprland configuration env = GDK_BACKEND,wayland,x11 env = QT_QPA_PLATFORM,wayland;xcb env = SDL_VIDEODRIVER,wayland @@ -138,10 +149,10 @@ in kb_layout = gb kb_options = caps:escape - touchpad { + touchpad { natural_scroll = yes scroll_factor = 0.5 - } + } } bind = SUPER, RETURN, exec, ${ my-deps.terminal } @@ -165,16 +176,16 @@ in bind = SUPER, F, fullscreen, bind = SUPER, V, togglefloating, - bind = SUPER_SHIFT, P, exec,bwmenu - bind = SUPER_SHIFT, S, exec,screenshot + bind = SUPER_SHIFT, P, exec,${ my-scripts.bwmenu }/bin/bwmenu + bind = SUPER_SHIFT, S, exec,${ my-scripts.screenshot }/bin/screenshot bind =,XF86AudioRaiseVolume, exec,${ my-deps.amixer } sset Master 5%+ && ${ my-deps.amixer } sset Master unmute bind =,XF86AudioLowerVolume, exec,${ my-deps.amixer } sset Master 5%- - bind =,XF86AudioPlay, exec,play-pause + bind =,XF86AudioPlay, exec,${ my-scripts.play-pause }/bin/play-pause bind =,XF86AudioNext, exec,${ my-deps.playerctl } next bind =,XF86AudioPrev, exec,${ my-deps.playerctl } previous - bind =,XF86MonBrightnessUp, exec,brightness-up - bind =,XF86MonBrightnessDown, exec,brightness-down + bind =,XF86MonBrightnessUp, exec,${ my-scripts.brightness-up }/bin/brightness-up + bind =,XF86MonBrightnessDown, exec,${ my-scripts.brightness-down }/bin/brightness-down bind = SUPER,1,workspace,1 bind = SUPER,2,workspace,2 @@ -222,6 +233,7 @@ in } ''; }; + programs.waybar.enable = true; programs.waybar.settings = { mainBar = { @@ -236,12 +248,12 @@ in pulseaudio = { format-muted = "πŸ”‡ {volume}%"; format = "{icon} {volume}"; - format-icons.default = ["πŸ”ˆ" "πŸ”‰" "πŸ”Š"]; - on-click = "pavucontrol"; + format-icons.default = [ "πŸ”ˆ" "πŸ”‰" "πŸ”Š" ]; + on-click = "${pkgs.pavucontrol}/bin/pavucontrol"; }; mpris = { - format= "{player_icon} {title}"; - format-paused= "{status_icon} {title}"; + format = "{player_icon} {title}"; + format-paused = "{status_icon} {title}"; player-icons = { default = "▢️"; mpv = "🎡"; @@ -249,14 +261,14 @@ in status-icons = { paused = "⏸️"; }; - on-click = "play-pause"; + on-click = "${my-scripts.play-pause}/bin/play-pause"; }; battery = { format = "{icon} {capacity}%"; - format-icons = ["🀏" "πŸͺ«" "πŸ”‹"]; + format-icons = [ "🀏" "πŸͺ«" "πŸ”‹" ]; states = { - warning = 30; - critical = 15; + warning = 30; + critical = 15; }; }; }; @@ -288,9 +300,10 @@ in }; gtk3.bookmarks = [ "file:///home/tristan/Documents" + "file:///home/tristan/Pictures/Screenshots" ]; }; - + services.mako = { enable = true; }; @@ -338,24 +351,24 @@ in font = "mono:size=12"; }; colors = { - foreground="abb2bf"; - background="282c34"; - regular0="222222"; - regular1="eb3a26"; - regular2="7fbc59"; - regular3="e9db65"; - regular4="4781d1"; - regular5="7d74bb"; - regular6="50a2bd"; - regular7="dcdccc"; - bright0="666666"; - bright1="e15d4e"; - bright2="8fbd73"; - bright3="e3d97e"; - bright4="6791ce"; - bright5="8f88be"; - bright6="6caabf"; - bright7="ffffff"; + foreground = "abb2bf"; + background = "282c34"; + regular0 = "222222"; + regular1 = "eb3a26"; + regular2 = "7fbc59"; + regular3 = "e9db65"; + regular4 = "4781d1"; + regular5 = "7d74bb"; + regular6 = "50a2bd"; + regular7 = "dcdccc"; + bright0 = "666666"; + bright1 = "e15d4e"; + bright2 = "8fbd73"; + bright3 = "e3d97e"; + bright4 = "6791ce"; + bright5 = "8f88be"; + bright6 = "6caabf"; + bright7 = "ffffff"; }; }; @@ -397,76 +410,76 @@ in D = "trash"; }; programs.lf.previewer.source = pkgs.writeShellScript "preview" '' -image () { - ${my-deps.chafa} "$1" -f sixel -s "$(($2/2))x$3" | sed 's/#/\n#/g' - ${ my-deps.exiftool } "$1" -} + image () { + ${my-deps.chafa} "$1" -f sixel -s "$(($2/2))x$3" | sed 's/#/\n#/g' + ${ my-deps.exiftool } "$1" + } -batted () { - cat "$@" -} + batted () { + cat "$@" + } -CACHE="$HOME/.cache/lf/thumbnail.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | awk '{print $1}'))" + CACHE="$HOME/.cache/lf/thumbnail.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | awk '{print $1}'))" -case "$(printf "%s\n" "$(readlink -f "$1")" | awk '{print tolower($0)}')" in - *.tgz|*.tar.gz) tar tzf "$1" ;; - *.tar.bz2|*.tbz2) tar tjf "$1" ;; - *.tar.txz|*.txz) xz --list "$1" ;; - *.tar) tar tf "$1" ;; - *.zip|*.jar|*.war|*.ear|*.oxt) unzip -l "$1" ;; - *.rar) unrar l "$1" ;; - *.md) glow -s dark "$1" ;; - *.7z) 7z l "$1" ;; - *.[1-8]) man "$1" | col -b ;; - *.o) nm "$1";; - *.torrent) transmission-show "$1" ;; - *.iso) iso-info --no-header -l "$1" ;; - *.odt|*.ods|*.odp|*.sxw) odt2txt "$1" ;; - *.doc) catdoc "$1" ;; - *.docx) docx2txt "$1" - ;; - *.xml|*.html) w3m -dump "$1";; - *.xls|*.xlsx) - ssconvert --export-type=Gnumeric_stf:stf_csv "$1" "fd://1" | batted --language=csv - ;; - *.wav|*.mp3|*.flac|*.m4a|*.wma|*.ape|*.ac3|*.og[agx]|*.spx|*.opus|*.as[fx]|*.mka) - ${ my-deps.exiftool } "$1" - ;; - *.pdf) - [ ! -f "$CACHE.jpg" ] && \ - pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE" - image "$CACHE.jpg" "$2" "$3" "$4" "$5" - ;; - *.epub) - [ ! -f "$CACHE" ] && \ - epub-thumbnailer "$1" "$CACHE" 1024 - image "$CACHE" "$2" "$3" "$4" "$5" - ;; - *.cbz|*.cbr|*.cbt) - [ ! -f "$CACHE" ] && \ - comicthumb "$1" "$CACHE" 1024 - image "$CACHE" "$2" "$3" "$4" "$5" - ;; - *.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|*.mov|*.webm|*.ts|*.mts|*.m4v|*.r[am]|*.qt|*.divx) - [ ! -f "$CACHE.jpg" ] && \ - ffmpegthumbnailer -i "$1" -o "$CACHE.jpg" -s 0 -q 5 - image "$CACHE.jpg" "$2" "$3" "$4" "$5" - ;; - *.bmp|*.jpg|*.jpeg|*.png|*.xpm|*.webp|*.gif|*.jfif) - image "$1" "$2" "$3" "$4" "$5" - ;; - *.svg) - [ ! -f "$CACHE.jpg" ] && \ - convert "$1" "$CACHE.jpg" - image "$CACHE.jpg" "$2" "$3" "$4" "$5" - ;; - *.ino) - batted --language=cpp "$1" - ;; - *) - batted "$1" - ;; -esac - ''; + case "$(printf "%s\n" "$(readlink -f "$1")" | awk '{print tolower($0)}')" in + *.tgz|*.tar.gz) tar tzf "$1" ;; + *.tar.bz2|*.tbz2) tar tjf "$1" ;; + *.tar.txz|*.txz) xz --list "$1" ;; + *.tar) tar tf "$1" ;; + *.zip|*.jar|*.war|*.ear|*.oxt) unzip -l "$1" ;; + *.rar) unrar l "$1" ;; + *.md) glow -s dark "$1" ;; + *.7z) 7z l "$1" ;; + *.[1-8]) man "$1" | col -b ;; + *.o) nm "$1";; + *.torrent) transmission-show "$1" ;; + *.iso) iso-info --no-header -l "$1" ;; + *.odt|*.ods|*.odp|*.sxw) odt2txt "$1" ;; + *.doc) catdoc "$1" ;; + *.docx) docx2txt "$1" - ;; + *.xml|*.html) w3m -dump "$1";; + *.xls|*.xlsx) + ssconvert --export-type=Gnumeric_stf:stf_csv "$1" "fd://1" | batted --language=csv + ;; + *.wav|*.mp3|*.flac|*.m4a|*.wma|*.ape|*.ac3|*.og[agx]|*.spx|*.opus|*.as[fx]|*.mka) + ${ my-deps.exiftool } "$1" + ;; + *.pdf) + [ ! -f "$CACHE.jpg" ] && \ + pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE" + image "$CACHE.jpg" "$2" "$3" "$4" "$5" + ;; + *.epub) + [ ! -f "$CACHE" ] && \ + epub-thumbnailer "$1" "$CACHE" 1024 + image "$CACHE" "$2" "$3" "$4" "$5" + ;; + *.cbz|*.cbr|*.cbt) + [ ! -f "$CACHE" ] && \ + comicthumb "$1" "$CACHE" 1024 + image "$CACHE" "$2" "$3" "$4" "$5" + ;; + *.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|*.mov|*.webm|*.ts|*.mts|*.m4v|*.r[am]|*.qt|*.divx) + [ ! -f "$CACHE.jpg" ] && \ + ffmpegthumbnailer -i "$1" -o "$CACHE.jpg" -s 0 -q 5 + image "$CACHE.jpg" "$2" "$3" "$4" "$5" + ;; + *.bmp|*.jpg|*.jpeg|*.png|*.xpm|*.webp|*.gif|*.jfif) + image "$1" "$2" "$3" "$4" "$5" + ;; + *.svg) + [ ! -f "$CACHE.jpg" ] && \ + convert "$1" "$CACHE.jpg" + image "$CACHE.jpg" "$2" "$3" "$4" "$5" + ;; + *.ino) + batted --language=cpp "$1" + ;; + *) + batted "$1" + ;; + esac + ''; home.file.".config/wofi/config".text = '' term=foot @@ -483,4 +496,17 @@ esac }; }; + programs.helix = { + enable = true; + languages = [ + { + name = "nix"; + auto-format = true; + language-server = { + command = "${pkgs.rnix-lsp}/bin/rnix-lsp"; + }; + } + ]; + }; + } diff --git a/system/work/home.nix b/system/work/home.nix index 29ae5b4..c2437c0 100644 --- a/system/work/home.nix +++ b/system/work/home.nix @@ -23,12 +23,18 @@ wayland.windowManager.hyprland = { extraConfig = '' + ## work laptop configuration exec-once = ${pkgs.swaybg}/bin/swaybg -o eDP-1 -i ~/Pictures/backgrounds/nix-wallpaper-simple-red.png & monitor = ,preferred,auto, 1.2 + input { kb_variant = dvorak } + + general { + gaps_out = 10 + } ''; };