diff --git a/files/.config/configstore/update-notifier-npm.json b/files/.config/configstore/update-notifier-npm.json index 78e91f9..e01704c 100644 --- a/files/.config/configstore/update-notifier-npm.json +++ b/files/.config/configstore/update-notifier-npm.json @@ -1,6 +1,6 @@ { "optOut": false, - "lastUpdateCheck": 1597140285958, + "lastUpdateCheck": 1597606728076, "update": { "latest": "6.14.7", "current": "6.14.6", diff --git a/files/.config/htop/htoprc b/files/.config/htop/htoprc index dcf5518..af0617e 120000 --- a/files/.config/htop/htoprc +++ b/files/.config/htop/htoprc @@ -1 +1 @@ -/nix/store/nb0lqjygfrf2v2qaifc79xw87zb2xk37-home-manager-files/.config/htop/htoprc \ No newline at end of file +/nix/store/b892y8ysy3s7swvcfz493lz3cbc2mbi1-home-manager-files/.config/htop/htoprc \ No newline at end of file diff --git a/files/.xmonad/lib/Config.hs b/files/.xmonad/lib/Config.hs index 9be7f65..fa263aa 100644 --- a/files/.xmonad/lib/Config.hs +++ b/files/.xmonad/lib/Config.hs @@ -109,7 +109,7 @@ import XMonad.Layout.WindowArranger -- Values -------------------- {{{ myModMask = mod4Mask -myLauncher = Rofi.asCommand (def { Rofi.theme = Rofi.bigTheme }) ["-show run"] +myLauncher = Rofi.asCommand def ["-show run"] --myTerminal = "termite --name törminell" myTerminal = "alacritty" myBrowser = "qutebrowser" @@ -302,14 +302,14 @@ myKeys = concat [ zoomRowBindings, tabbedBindings, multiMonitorBindings, program programLaunchBindings :: [(String, X ())] programLaunchBindings = [ ("M-p", spawn myLauncher) - , ("M-S-p", Rofi.showCombi (def { Rofi.theme = Rofi.bigTheme }) [ "drun", "window", "ssh" ]) - , ("M-S-e", Rofi.showNormal (def { Rofi.theme = Rofi.bigTheme, Rofi.fuzzy = False }) "emoji") + , ("M-S-p", Rofi.showCombi def [ "drun", "window", "ssh" ]) + , ("M-S-e", Rofi.showNormal (def { Rofi.fuzzy = False }) "emoji") --, ("M-s", spawn $ scriptFile "rofi-search.sh") , ("M-S-o", spawn $ scriptFile "rofi-open.sh") , ("M-n", scratchpadSubmap) , ("M-e", Rofi.promptRunCommand def specialCommands) , ("M-o", Rofi.promptRunCommand def withSelectionCommands) - , ("M-S-C-g", spawn "killall -INT -g giph") -- stop gif recording + , ("M-S-C-g", spawn "killall -INT -g giph" >> spawn "scr -s") -- stop gif and video recording --, ("M-b", launchWithBackgroundInstance (className =? "qutebrowser") "bwrap --bind / / --dev-bind /dev /dev --tmpfs /tmp --tmpfs /run qutebrowser") --, ("M-b", safeSpawnProg "qutebrowser") @@ -433,6 +433,7 @@ myKeys = concat [ zoomRowBindings, tabbedBindings, multiMonitorBindings, program [ ("screenshot", spawn $ scriptFile "screenshot.sh") , ("screenshot to file", spawn $ scriptFile "screenshot.sh --tofile") , ("screenshot full to file", spawn $ scriptFile "screenshot.sh --tofile --fullscreen") + , ("screenvideo to file", spawn (scriptFile "screenvid.sh") >> notify "video" "stop video-recording with M-S-C-g") , ("screengif to file", spawn (scriptFile "screengif.sh") >> notify "gif" "stop gif-recording with M-S-C-g") , ("toggleOptimal", sendMessage ToggleGaps >> toggleWindowSpacingEnabled) , ("toggleSpacing", toggleWindowSpacingEnabled) diff --git a/files/.xmonad/lib/Rofi.hs b/files/.xmonad/lib/Rofi.hs index b55de6b..e74d4aa 100644 --- a/files/.xmonad/lib/Rofi.hs +++ b/files/.xmonad/lib/Rofi.hs @@ -6,8 +6,6 @@ module Rofi , promptRunCommand , showNormal , showCombi - , smallTheme - , bigTheme , RofiConfig(..) ) where @@ -22,23 +20,14 @@ rofiCmd :: String rofiCmd = "rofi" data RofiConfig - = RofiConfig { theme :: String, caseInsensitive :: Bool, fuzzy :: Bool } deriving (Show, Eq) + = RofiConfig { caseInsensitive :: Bool, fuzzy :: Bool } deriving (Show, Eq) instance Default RofiConfig where - def = RofiConfig { theme = smallTheme, caseInsensitive = True, fuzzy = True } - -smallTheme :: String -smallTheme = "/home/leon/nixpkgs/config/rofi/launcher_grid_style.rasi" - -bigTheme :: String -bigTheme = "/home/leon/nixpkgs/config/rofi/launcher_grid_full_style.rasi" + def = RofiConfig { caseInsensitive = True, fuzzy = True } toArgList :: RofiConfig -> [String] toArgList RofiConfig {..} = concat - [ ["-theme", theme] - , addIf caseInsensitive ["-i"] - , addIf fuzzy ["-matching", "fuzzy"] - ] + [addIf caseInsensitive ["-i"], addIf fuzzy ["-matching", "fuzzy"]] where addIf check list = if check then list else [] diff --git a/files/nix-stuff/nixpkgs/config/alacritty.nix b/files/nix-stuff/nixpkgs/config/alacritty.nix deleted file mode 100644 index 879e7d4..0000000 --- a/files/nix-stuff/nixpkgs/config/alacritty.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ pkgs, myConf, ... }: -{ - enable = true; - package = ( - pkgs.writeScriptBin "alacritty" '' - #!/bin/sh - exec nixGLIntel ${pkgs.alacritty}/bin/alacritty "$@" - '' - ); - settings = { - window = { - padding.x = 20; - padding.y = 20; - dynamic_padding = true; - dynamic_title = true; - }; - cursor = { - style = "Block"; - unfocused_hollow = true; - }; - shell = "/home/leon/.nix-profile/bin/zsh"; - #shell = "/usr/bin/fish"; - mouse = { - double_click.threshold = 300; - triple_click.threshold = 300; - hide_when_typing = true; - url.launcher.program = "xdg-open"; - }; - - key_bindings = [ - { - key = "N"; - mods = "Control|Shift"; - action = "SpawnNewInstance"; - } - ]; - - background_opacity = 1; - font = { - size = 12; - #normal.family = "Iosevka"; - normal.family = "Terminus (TTF)"; - offset.x = 0; - offset.y = -2; - }; - colors = myConf.colors; - }; -} diff --git a/files/nix-stuff/nixpkgs/config/deer.zsh b/files/nix-stuff/nixpkgs/config/deer.zsh deleted file mode 100644 index b78441d..0000000 --- a/files/nix-stuff/nixpkgs/config/deer.zsh +++ /dev/null @@ -1,482 +0,0 @@ -# -*- mode: shell-script -*- -# vim: set ft=zsh : -######################################################################### -# Copyright (C) 2014-2015 Wojciech Siewierski # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see . # -######################################################################### - -zstyle -s ":deer:" height DEER_HEIGHT || DEER_HEIGHT=22 - - -typeset -Ag DEER_KEYS -function () -{ - while [ -n "$2" ]; do - DEER_KEYS[$1]=${DEER_KEYS[$1]:-$2} - shift 2 - done -} down j \ - page_down J \ - up k \ - page_up K \ - enter l \ - leave h \ - next_parent ']' \ - prev_parent '[' \ - search / \ - filter f \ - toggle_hidden H \ - quit q \ - append_path a \ - append_abs_path A \ - insert_path i \ - insert_abs_path I \ - multi_insert_dwim s \ - multi_insert_abs S \ - chdir c \ - chdir_selected C \ - rifle r \ - edit e \ - - -# Select the Nth next file. Pass a negative argument for the previous file. -deer-move() -{ - local FILES MOVEMENT INDEX - MOVEMENT=$1 - - FILES=($DEER_DIRNAME/${~DEER_FILTER[$DEER_DIRNAME]:-'*'}(N$DEER_GLOBFLAGS-/:t) - $DEER_DIRNAME/${~DEER_FILTER[$DEER_DIRNAME]:-'*'}(N$DEER_GLOBFLAGS-^/:t)) - - INDEX=${(k)FILES[(re)$DEER_BASENAME[$DEER_DIRNAME]]} - - if (( INDEX+MOVEMENT <= 0 )); then - DEER_BASENAME[$DEER_DIRNAME]=$FILES[1] - elif (( INDEX+MOVEMENT > $#FILES )); then - DEER_BASENAME[$DEER_DIRNAME]=$FILES[$#FILES] - else - DEER_BASENAME[$DEER_DIRNAME]=$FILES[$INDEX+$MOVEMENT] - fi -} - -# Select the first visible directory (or file if there are no -# directories) in the current directory. Useful when changing the file -# filter. -deer-refocus() -{ - local TMP - TMP=($DEER_DIRNAME/${~DEER_FILTER[$DEER_DIRNAME]:-'*'}(N$DEER_GLOBFLAGS-/:t) - $DEER_DIRNAME/${~DEER_FILTER[$DEER_DIRNAME]:-'*'}(N$DEER_GLOBFLAGS-^/:t)) - DEER_BASENAME[$DEER_DIRNAME]=$TMP[1] - - [ -n "$DEER_BASENAME[$DEER_DIRNAME]" ] # Return if there were any files at all. -} - -# Enter the selected directory -deer-enter() -{ - # Abort if there is no file focused at all or if it is not a - # directory. - [ -n "$DEER_BASENAME[$DEER_DIRNAME]" -a \ - -d "$DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME]" ] || return - - DEER_DIRNAME=${DEER_DIRNAME%/}/$DEER_BASENAME[$DEER_DIRNAME] - - if [ -z $DEER_BASENAME[$DEER_DIRNAME] ]; then - deer-refocus - fi -} - -# Move to the parent directory -deer-leave() -{ - [ $DEER_DIRNAME = / ] && return - DEER_BASENAME[$DEER_DIRNAME:h]=$DEER_DIRNAME:t - DEER_DIRNAME=$DEER_DIRNAME:h -} - -# Display a given prompt, read a string and save it into $BUFFER. -deer-prompt() -{ - BUFFER="" - PREDISPLAY="$1/ " - POSTDISPLAY="" - - local region_highlight - region_highlight=("P0 $#1 fg=green") - zle recursive-edit -} - -# Read a pattern and select the first matching file. -deer-search() -{ - deer-prompt "search" - - local TMP - TMP=($DEER_DIRNAME/${~BUFFER}${DEER_FILTER[$DEER_DIRNAME]:-'*'}(N$DEER_GLOBFLAGS-:t)) - [ -n "$TMP[1]" ] && DEER_BASENAME[$DEER_DIRNAME]=$TMP[1] -} - -# Read a pattern and use it as a new filter. -deer-filter() -{ - deer-prompt "filter" - - if [ -n "$BUFFER" ] && [[ ! $BUFFER == *\** ]]; then - BUFFER=*$BUFFER* - fi - - deer-apply-filter $BUFFER || deer-apply-filter -} - -deer-apply-filter() -{ - DEER_FILTER[$DEER_DIRNAME]=$1 - deer-refocus -} - -# Draw an arrow pointing to the selected file. -deer-mark-file-list() -{ - local MARKED=$1 - shift - - print -l -- "$@" \ - | grep -Fx -B5 -A$DEER_HEIGHT -- "$MARKED" \ - | perl -pe 'BEGIN{$name = shift} - if ($name."\n" eq $_) { - $_="-> $_" - } else { - $_=" $_" - }' -- "$MARKED" -} - -# Draw the file lists in the form of Miller columns. -deer-refresh() -{ - local FILES PREVIEW PARENTFILES OUTPUT REL_DIRNAME - local SEPARATOR="------" - - PREDISPLAY=$OLD_LBUFFER - REL_DIRNAME=${${DEER_DIRNAME%/}#$DEER_STARTDIR}/ - [ -n "$DEER_STARTDIR" ] && REL_DIRNAME=${REL_DIRNAME#/} - LBUFFER=$REL_DIRNAME$DEER_BASENAME[$DEER_DIRNAME] - RBUFFER="" - local TMP_FILTER - TMP_FILTER=${DEER_FILTER[$DEER_DIRNAME]} - POSTDISPLAY=${TMP_FILTER:+ filt:$TMP_FILTER} - region_highlight=("P0 $#PREDISPLAY fg=black,bold" - "0 $#REL_DIRNAME fg=blue,bold" - "$#BUFFER $[$#BUFFER+$#POSTDISPLAY] fg=yellow,bold") - - - FILES=($DEER_DIRNAME/${~DEER_FILTER[$DEER_DIRNAME]:-'*'}(N$DEER_GLOBFLAGS-/:t) - $SEPARATOR - $DEER_DIRNAME/${~DEER_FILTER[$DEER_DIRNAME]:-'*'}(N$DEER_GLOBFLAGS-^/:t)) - PARENTFILES=($DEER_DIRNAME:h/${~DEER_FILTER[$DEER_DIRNAME:h]:-'*'}(N$DEER_GLOBFLAGS-/:t)) - - local IFS=$'\n' - FILES=($(deer-mark-file-list "$DEER_BASENAME[$DEER_DIRNAME]" $FILES)) - PARENTFILES=($(deer-mark-file-list "$DEER_DIRNAME:t" $PARENTFILES)) - unset IFS - - FILES=(${(F)FILES[1,$DEER_HEIGHT]}) - PARENTFILES=(${(F)PARENTFILES[1,$DEER_HEIGHT]}) - - - if [ -f $DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME] ]; then - if file $DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME] | grep -Fq text; then - PREVIEW="--- Preview: ---"$'\n'$(head -n$DEER_HEIGHT $DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME]) - - # Replace '/' with '∕' (division slash, U+2215) to allow using it as a - # paste(1)/column(1) separator. - PREVIEW=${PREVIEW//\//∕} - else - PREVIEW="--- Binary file, preview unavailable ---" - fi - else - # I'm really sorry about what you see below. - # It basically means: PREVIEW=(directories separator files) - PREVIEW=($DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME]/${~DEER_FILTER[$DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME]]:-'*'}(N$DEER_GLOBFLAGS-/:t) - $SEPARATOR - $DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME]/${~DEER_FILTER[$DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME]]:-'*'}(N$DEER_GLOBFLAGS-^/:t)) - PREVIEW=${(F)PREVIEW[1,$DEER_HEIGHT]} - fi - - OUTPUT="$(paste -d/ <(<<< $PARENTFILES \ - | awk '{print substr($0,1,16)}') \ - <(<<< $FILES) \ - <(<<< $PREVIEW) \ - | sed 's,/, / ,g' \ - | column -t -s/ 2> /dev/null \ - | awk -v width=$COLUMNS '{print substr($0,1,width-1)}')" - zle -M -- $OUTPUT - zle -R -} - -# Run `deer-add' with the same arguments, restore the shell state and -# then exit. -deer-restore() -{ - deer-add "$@" - PREDISPLAY="" - POSTDISPLAY="" - region_highlight=() - LBUFFER=$OLD_LBUFFER - RBUFFER=$OLD_RBUFFER - zle reset-prompt - zle -M "" -} - -# Add the given string before or after the cursor. -deer-add() -{ - case $1 in - --append) - OLD_LBUFFER+=$2 - shift 2 - ;; - --insert) - OLD_RBUFFER=$2$OLD_RBUFFER - shift 2 - ;; - esac -} - -# Get the quoted relative path from the absolute unquoted path. -deer-get-relative() -{ - local TMP - TMP=${1:-${DEER_DIRNAME%/}/$DEER_BASENAME[$DEER_DIRNAME]} - TMP="`python -c ' -import sys, os -print(os.path.relpath(sys.argv[1], sys.argv[2])) -' $TMP ${DEER_STARTDIR:-$PWD}`" - print -R $TMP:q -} - -# Tries to guess a directory to start in from the current argument. -deer-set-initial-directory() -{ - autoload -U split-shell-arguments modify-current-argument - local REPLY REPLY2 reply - local DIRECTORY - - ((--CURSOR)) - split-shell-arguments - ((++CURSOR)) - - # Find the longest existing directory path in the current argument. - DEER_STARTDIR=${(Q)${${reply[$REPLY]%%[[:space:]]#}:a}%/} - while [ -n "$DEER_STARTDIR" -a \ - ! -d "$DEER_STARTDIR" ]; do - DEER_STARTDIR=${DEER_STARTDIR%/*} - done - - DEER_DIRNAME=${DEER_STARTDIR:-$PWD} -} - -# The main entry function. -deer-launch() -{ - emulate -L zsh - setopt extended_glob - local DEER_DIRNAME DEER_STARTDIR DEER_GLOBFLAGS - local -A DEER_FILTER DEER_BASENAME - local REPLY OLD_LBUFFER OLD_RBUFFER - - local GREP_OPTIONS - GREP_OPTIONS="" - - OLD_LBUFFER=$LBUFFER - OLD_RBUFFER=$RBUFFER - - deer-set-initial-directory - - DEER_GLOBFLAGS="" - - if [ -n "$NUMERIC" ]; then - for i in {1..$NUMERIC}; do - deer-leave - done - else - # Don't change cwd but initialize the variables. - deer-leave - deer-enter - fi - - deer-refresh - while read -k; do - case $REPLY in - # Movement - $DEER_KEYS[up]) - deer-move -1 - deer-refresh - ;; - $DEER_KEYS[page_up]) - deer-move -5 - deer-refresh - ;; - $DEER_KEYS[down]) - deer-move 1 - deer-refresh - ;; - $DEER_KEYS[page_down]) - deer-move 5 - deer-refresh - ;; - $DEER_KEYS[enter]) - deer-enter - deer-refresh - ;; - $DEER_KEYS[leave]) - deer-leave - deer-refresh - ;; - $DEER_KEYS[next_parent]) - deer-leave - deer-move 1 - deer-enter - deer-refresh - ;; - $DEER_KEYS[prev_parent]) - deer-leave - deer-move -1 - deer-enter - deer-refresh - ;; - # Search - $DEER_KEYS[search]) - deer-search - deer-refresh - ;; - # Filter - $DEER_KEYS[filter]) - deer-filter - deer-refresh - ;; - $DEER_KEYS[toggle_hidden]) - if [ -z $DEER_GLOBFLAGS ]; then - DEER_GLOBFLAGS="D" # show hidden files - else - DEER_GLOBFLAGS="" - fi - # make sure the focus is on a visible file - DEER_BASENAME[$DEER_DIRNAME]= - deer-leave - deer-enter - deer-refresh - ;; - # Quit - $DEER_KEYS[quit]) - deer-restore - break - ;; - # Insert the path and quit. - $DEER_KEYS[append_path]) - deer-restore --append "`deer-get-relative` " - break - ;; - $DEER_KEYS[append_abs_path]) - deer-restore --append "${${DEER_DIRNAME%/}:q}/${DEER_BASENAME[$DEER_DIRNAME]:q} " - break - ;; - $DEER_KEYS[insert_path]) - deer-restore --insert " `deer-get-relative`" - break - ;; - $DEER_KEYS[insert_abs_path]) - deer-restore --insert " ${${DEER_DIRNAME%/}:q}/${DEER_BASENAME[$DEER_DIRNAME]:q}" - break - ;; - # Insert the path and don't quit yet. - $DEER_KEYS[multi_insert_dwim]) - if [ "$OLD_LBUFFER[-1]" = "/" ]; then - OLD_LBUFFER+="{" - fi - # replacement used to insert ',' instead of '{' as a separator in {foo,bar,...} lists - deer-add --append "`deer-get-relative`"${${OLD_LBUFFER[-1]/\{/,}:- } - deer-move 1 - deer-refresh - ;; - # Insert the absolute path and don't quit yet. - $DEER_KEYS[multi_insert_abs]) - deer-add --append " ${${DEER_DIRNAME%/}:q}/${DEER_BASENAME[$DEER_DIRNAME]:q}" - deer-move 1 - deer-refresh - ;; - # Quit and change the shell's current directory to the selected one. - $DEER_KEYS[chdir]) - deer-leave - ;& - $DEER_KEYS[chdir_selected]) - if [[ -d $DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME] && \ - -x $DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME] ]]; then - cd -- $DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME] - deer-restore - break - fi - ;; - $DEER_KEYS[edit]) - if [[ -f $DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME] ]]; then - "${EDITOR:-vim}" $DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME] - fi - ;; - # See rifle(1) manpage (included with ranger(1)). - $DEER_KEYS[rifle]) - if [[ -f $DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME] ]]; then - rifle $DEER_DIRNAME/$DEER_BASENAME[$DEER_DIRNAME] - fi - ;; - # Arrow keys - $'\e') - read -k - case $REPLY in - '[') - read -k - case $REPLY in - 'A') - deer-move -1 - deer-refresh - ;; - 'B') - deer-move 1 - deer-refresh - ;; - 'C') - deer-enter - deer-refresh - ;; - 'D') - deer-leave - deer-refresh - ;; - esac - ;; - esac - ;; - esac - done -} - -if zle; then - deer-launch -else - deer() - { - deer-launch "$@" - } -fi -~ diff --git a/files/nix-stuff/nixpkgs/config/feh.nix b/files/nix-stuff/nixpkgs/config/feh.nix deleted file mode 100644 index 4aae164..0000000 --- a/files/nix-stuff/nixpkgs/config/feh.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ - enable = true; - keybindings = { zoom_in = "plus"; zoom_out = "minus"; }; -} diff --git a/files/nix-stuff/nixpkgs/config/gtk.nix b/files/nix-stuff/nixpkgs/config/gtk.nix deleted file mode 100644 index a3e1ec3..0000000 --- a/files/nix-stuff/nixpkgs/config/gtk.nix +++ /dev/null @@ -1,118 +0,0 @@ -{ myConf, pkgs ? import }: -{ - enable = true; - theme.name = "phocus"; - #iconTheme.package = pkgs.papirus-icon-theme; - #iconTheme.name = "papirus"; - #iconTheme.package = pkgs.numix-icon-theme; - #iconTheme.name = "Numix"; - #iconTheme.package = pkgs.arc-icon-theme; - iconTheme.name = "Numix"; - #font.name = "Terminus (TTF) 12"; - font.name = "xos4 Terminus 12"; - - gtk2.extraConfig = ''gtk-theme-name = "Adwaita-dark"''; - - gtk3.extraConfig = { - gtk-menu-images = 1; - gtk-xft-hinting = 1; - gtk-xft-rgba = "rgb"; - gtk-application-prefer-dark-theme = 1; - gtk-decoration-layout = ":"; - gtk-toolbar-style = "GTK_TOOLBAR_ICONS"; - gtk-toolbar-icon-size = "GTK_ICON_SIZE_LARGE_TOOLBAR"; - gtk-enable-even-sounds = 0; - gtk-enable-input-feedback-sounds = 0; - gtk-button-images = 1; - ctk-cursor-theme-name = "capitaine-cursors-light"; - gtk-cursor-theme-size = 0; - }; - - gtk3.extraCss = '' - .termite { - padding: 15px; - } - vte-terminal { - padding: 10px; - } - ''; - #@define-color theme_fg_color #eff0f1; - #@define-color theme_bg_color #31363b; - #@define-color theme_text_color #eff0f1; - #@define-color theme_base_color #232629; - #@define-color theme_view_hover_decoration_color #3daee9; - #@define-color theme_hovering_selected_bg_color #3daee9; - #@define-color theme_selected_bg_color #3daee9; - #@define-color theme_selected_fg_color #eff0f1; - #@define-color theme_view_active_decoration_color #3daee9; - #@define-color theme_button_background_normal #31363b; - #@define-color theme_button_decoration_hover #3daee9; - #@define-color theme_button_decoration_focus #3daee9; - #@define-color theme_button_foreground_normal #eff0f1; - #@define-color theme_button_foreground_active #eff0f1; - #@define-color borders #606468; - #@define-color warning_color #f67400; - #@define-color success_color #27ae60; - #@define-color error_color #da4453; - #@define-color theme_unfocused_fg_color #eff0f1; - #@define-color theme_unfocused_text_color #eff0f1; - #@define-color theme_unfocused_bg_color #31363b; - #@define-color theme_unfocused_base_color #232629; - #@define-color theme_unfocused_selected_bg_color_alt #224e65; - #@define-color theme_unfocused_selected_bg_color #224e65; - #@define-color theme_unfocused_selected_fg_color #eff0f1; - #@define-color theme_button_background_backdrop #31363b; - #@define-color theme_button_decoration_hover_backdrop #3daee9; - #@define-color theme_button_decoration_focus_backdrop #3daee9; - #@define-color theme_button_foreground_backdrop #eff0f1; - #@define-color theme_button_foreground_active_backdrop #eff0f1; - #@define-color unfocused_borders #606468; - #@define-color warning_color_backdrop #f67400; - #@define-color success_color_backdrop #27ae60; - #@define-color error_color_backdrop #da4453; - #@define-color insensitive_fg_color #6e7175; - #@define-color insensitive_base_fg_color #65686a; - #@define-color insensitive_bg_color #2e3338; - #@define-color insensitive_base_color #212427; - #@define-color insensitive_selected_bg_color #2e3338; - #@define-color insensitive_selected_fg_color #6e7175; - #@define-color theme_button_background_insensitive #2e3338; - #@define-color theme_button_decoration_hover_insensitive #325b72; - #@define-color theme_button_decoration_focus_insensitive #325b72; - #@define-color theme_button_foreground_insensitive #6e7175; - #@define-color theme_button_foreground_active_insensitive #6e7175; - #@define-color insensitive_borders #3e4347; - #@define-color warning_color_insensitive #683e19; - #@define-color success_color_insensitive #225139; - #@define-color error_color_insensitive #5e2e35; - #@define-color insensitive_unfocused_fg_color #6e7175; - #@define-color theme_unfocused_view_text_color #65686a; - #@define-color insensitive_unfocused_bg_color #2e3338; - #@define-color theme_unfocused_view_bg_color #212427; - #@define-color insensitive_unfocused_selected_bg_color #2e3338; - #@define-color insensitive_unfocused_selected_fg_color #6e7175; - #@define-color theme_button_background_backdrop_insensitive #2e3338; - #@define-color theme_button_decoration_hover_backdrop_insensitive #325b72; - #@define-color theme_button_decoration_focus_backdrop_insensitive #325b72; - #@define-color theme_button_foreground_backdrop_insensitive #6e7175; - #@define-color theme_button_foreground_active_backdrop_insensitive #6e7175; - #@define-color unfocused_insensitive_borders #3e4347; - #@define-color warning_color_insensitive_backdrop #683e19; - #@define-color success_color_insensitive_backdrop #225139; - #@define-color error_color_insensitive_backdrop #5e2e35; - #@define-color link_color #2980b9; - #@define-color link_visited_color #7f8c8d; - #@define-color tooltip_text #eff0f1; - #@define-color tooltip_background #31363b; - #@define-color tooltip_border #606468; - #@define-color content_view_bg #232629; - #@define-color theme_titlebar_background rgb(49,54,59); - #@define-color theme_titlebar_foreground rgb(239,240,241); - #@define-color theme_titlebar_background_light #31363b; - #@define-color theme_titlebar_foreground_backdrop rgb(127,140,141); - #@define-color theme_titlebar_background_backdrop rgb(49,54,59); - #@define-color theme_titlebar_foreground_insensitive rgb(127,140,141); - #@define-color theme_titlebar_foreground_insensitive_backdrop rgb(127,140,141); - #''; - -} diff --git a/files/nix-stuff/nixpkgs/config/rofi/colors.rasi b/files/nix-stuff/nixpkgs/config/rofi/colors.rasi deleted file mode 100755 index 40e0aac..0000000 --- a/files/nix-stuff/nixpkgs/config/rofi/colors.rasi +++ /dev/null @@ -1,2 +0,0 @@ -/*@import "./colorschemes/gruvbox.rasi"*/ -@import "./colorschemes/teal.rasi" diff --git a/files/nix-stuff/nixpkgs/config/rofi/colorschemes/arc-dark.rasi b/files/nix-stuff/nixpkgs/config/rofi/colorschemes/arc-dark.rasi deleted file mode 100644 index 41f775f..0000000 --- a/files/nix-stuff/nixpkgs/config/rofi/colorschemes/arc-dark.rasi +++ /dev/null @@ -1,8 +0,0 @@ -* { - accent: #6BA0DE; - background: #383C4A; - background-light: #404552; - foreground: #E4E4E4; - on: #44ad4d; - off: #e34039; -} diff --git a/files/nix-stuff/nixpkgs/config/rofi/colorschemes/gruvbox.rasi b/files/nix-stuff/nixpkgs/config/rofi/colorschemes/gruvbox.rasi deleted file mode 100644 index 5b79ee0..0000000 --- a/files/nix-stuff/nixpkgs/config/rofi/colorschemes/gruvbox.rasi +++ /dev/null @@ -1,10 +0,0 @@ -* { - accent: #83a598; - /*background: #282828;*/ - background: #282828dd; - background-light: #303030dd; - foreground: #ebdbb2; - on: #44ad4d; - off: #fb4934; -} - diff --git a/files/nix-stuff/nixpkgs/config/rofi/colorschemes/teal.rasi b/files/nix-stuff/nixpkgs/config/rofi/colorschemes/teal.rasi deleted file mode 100644 index 4e9d45b..0000000 --- a/files/nix-stuff/nixpkgs/config/rofi/colorschemes/teal.rasi +++ /dev/null @@ -1,8 +0,0 @@ -* { - accent: #009688; - background: #212121bb; - background-light: #272727; - foreground: #bdbdbd; - on: #66bb6a; - off: #ef5350; -} diff --git a/files/nix-stuff/nixpkgs/config/rofi/default.nix b/files/nix-stuff/nixpkgs/config/rofi/default.nix deleted file mode 100644 index 5a6f431..0000000 --- a/files/nix-stuff/nixpkgs/config/rofi/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ myConf, pkgs ? import }: -{ - enable = true; - package = pkgs.rofi.override { plugins = [ pkgs.rofi-emoji ]; }; - theme = "/home/leon/nixpkgs/config/rofi/default_theme.rasi"; - #theme = ./default_theme.rasi; - terminal = "${pkgs.alacritty}/bin/alacritty"; -} diff --git a/files/nix-stuff/nixpkgs/config/rofi/default_theme.rasi b/files/nix-stuff/nixpkgs/config/rofi/default_theme.rasi deleted file mode 100755 index 736ae50..0000000 --- a/files/nix-stuff/nixpkgs/config/rofi/default_theme.rasi +++ /dev/null @@ -1 +0,0 @@ -@import "./launcher_grid_style.rasi" diff --git a/files/nix-stuff/nixpkgs/config/rofi/launcher_grid_full_style.rasi b/files/nix-stuff/nixpkgs/config/rofi/launcher_grid_full_style.rasi deleted file mode 100755 index 7907995..0000000 --- a/files/nix-stuff/nixpkgs/config/rofi/launcher_grid_full_style.rasi +++ /dev/null @@ -1,95 +0,0 @@ -/* - * - * Author : Aditya Shakya (adi1090x) - * Mail : adi1090x@gmail.com - * Github : @adi1090x - * Reddit : @adi1090x - * - */ - -configuration { - drun-display-format: "{icon} {name}"; - display-drun: "Applications"; - show-icons: true; - icon-theme: "Papirus"; - location: 0; - columns: 3; - fake-transparency: true; - /*fake-transparency: false;*/ - hide-scrollbar: true; - bw: 0; - fullscreen: true; - show-icons: true; - terminal: "kitty --single-instance"; - sidebar-mode: false; -} - -@import "./colors.rasi" - -* { - text-font: "Iosevka 14"; - - inputbar-margin: 3px 3px; - prompt-padding: 15px 20px; - entry-padding: 15px 15px 15px 0px; - list-element-padding: 10px; - list-element-margin: @inputbar-margin; - list-element-border: 0px 0px 0px 5px; - - apps-textbox-prompt-colon-padding: 15px -5px 0px 0px; -} - -#window { - width: 100%; - height: 100%; - padding: 120px 100px; -} - -* { - background-color: @background; - text-color: @foreground; - font: @text-font; -} - -inputbar, -prompt, -textbox-prompt-colon, -entry { - background-color: @background-light; -} - -#inputbar { - children: [ prompt, textbox-prompt-colon, entry ]; - margin: @inputbar-margin; -} - -#prompt { - padding: @prompt-padding; - background-color: @accent; - text-color: @background; -} - -#textbox-prompt-colon { - expand: false; - str: " :: "; - padding: @apps-textbox-prompt-colon-padding; -} - -#entry { - text-color: @accent; - padding: @entry-padding; -} - -#element { - padding: @list-element-padding; - margin: @list-element-margin; - border: @list-element-border; - background-color: @background-light; - border-color: @background-light; -} - -#element.selected { - background-color: @background-focus; - text-color: @accent; - border-color: @accent; -} diff --git a/files/nix-stuff/nixpkgs/config/rofi/launcher_grid_style.rasi b/files/nix-stuff/nixpkgs/config/rofi/launcher_grid_style.rasi deleted file mode 100755 index 3feda1d..0000000 --- a/files/nix-stuff/nixpkgs/config/rofi/launcher_grid_style.rasi +++ /dev/null @@ -1,96 +0,0 @@ -/* - * - * Author : Aditya Shakya (adi1090x) - * Mail : adi1090x@gmail.com - * Github : @adi1090x - * Reddit : @adi1090x - * - */ - -configuration { - drun-display-format: "{icon} {name}"; - display-drun: "Applications"; - show-icons: true; - icon-theme: "Papirus"; - location: 0; - yoffset: 0; - xoffset: 0; - columns: 2; - fake-transparency: false; - hide-scrollbar: true; - bw: 0; - fullscreen: false; - show-icons: true; - terminal: "termite"; - sidebar-mode: false; -} - -@import "./colors.rasi" - -* { - text-font: "Iosevka 12"; - - inputbar-margin: 3px 3px; - prompt-padding: 10px 10px; - entry-padding: 10px 0px 10px 0px; - list-element-padding: 10px; - list-element-margin: @inputbar-margin; - list-element-border: 0px 0px 0px 4px; - - apps-textbox-prompt-colon-padding: 10px -5px 0px 0px; -} - -#window { - width: 50%; - height: 60%; - padding: 40px 40px; -} - -* { - background-color: @background; - text-color: @foreground; - font: @text-font; -} - -inputbar, -prompt, -textbox-prompt-colon, -entry { - background-color: @background-light; -} - -#inputbar { - children: [ prompt, textbox-prompt-colon, entry ]; - margin: @inputbar-margin; -} - -#prompt { - padding: @prompt-padding; - background-color: @accent; - text-color: @background; -} - -#textbox-prompt-colon { - expand: false; - str: " :: "; - padding: @apps-textbox-prompt-colon-padding; -} - -#entry { - text-color: @accent; - padding: @entry-padding; -} - -#element { - padding: @list-element-padding; - margin: @list-element-margin; - border: @list-element-border; - background-color: @background-light; - border-color: @background-light; -} - -#element.selected { - background-color: @background-focus; - text-color: @accent; - border-color: @accent; -} diff --git a/files/nix-stuff/nixpkgs/home.nix b/files/nix-stuff/nixpkgs/home.nix index 19cc628..15bf6c1 100644 --- a/files/nix-stuff/nixpkgs/home.nix +++ b/files/nix-stuff/nixpkgs/home.nix @@ -7,34 +7,30 @@ # nix-env -u home-manager { config, pkgs, ... }: -let - elkowar_local = import ./local/default.nix {}; - myConf = import ./myConfig.nix; -in { - nixpkgs.config.allowUnfree = true; + nixpkgs.config = { + allowUnfree = true; + overlays = [ (import ./overlay) ]; - nixpkgs.config.packageOverrides = pkgs: { - nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") { - inherit pkgs; + packageOverrides = pkgs: { + nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") { + inherit pkgs; + }; }; - cool-retro-term = ( - pkgs.writeScriptBin "cool-retro-term" '' - #!/bin/sh - exec nixGLIntel ${pkgs.cool-retro-term}/bin/cool-retro-term "$@" - '' - ); + }; - profiles = { + + elkowar = { base = { enable = true; enableFish = true; enableZsh = true; }; desktop.enable = true; + desktop.colors = import ./modules/desktop/colors/gruvbox.nix; }; - imports = [ ./profiles/base.nix ./profiles/desktop.nix ]; + imports = [ ./modules ]; } diff --git a/files/nix-stuff/nixpkgs/local/default.nix b/files/nix-stuff/nixpkgs/local/default.nix deleted file mode 100644 index 9b4eea1..0000000 --- a/files/nix-stuff/nixpkgs/local/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs ? import {} }: -{ - bashtop = pkgs.callPackage ./packages/bashtop.nix {}; - liquidctl = pkgs.callPackage ./packages/liquidctl.nix {}; -} diff --git a/files/nix-stuff/nixpkgs/profiles/base.nix b/files/nix-stuff/nixpkgs/modules/base.nix similarity index 75% rename from files/nix-stuff/nixpkgs/profiles/base.nix rename to files/nix-stuff/nixpkgs/modules/base.nix index 0d8997b..6676171 100644 --- a/files/nix-stuff/nixpkgs/profiles/base.nix +++ b/files/nix-stuff/nixpkgs/modules/base.nix @@ -1,35 +1,37 @@ { config, lib, pkgs, ... }: let - cfg = config.profiles.base; - elkowar_local = import ../local/default.nix {}; + cfg = config.elkowar.base; + elkowar_local = import ../local/default.nix { }; myConf = import ../myConfig.nix; + sources = import ../nix/sources.nix; in { - options.profiles.base = { + options.elkowar.base = { enable = lib.mkEnableOption "Basic profile enabled"; enableFish = lib.mkEnableOption "Fish shell"; enableZsh = lib.mkEnableOption "Zsh shell"; }; - imports = [ ../config/tmux.nix ../config/generalConfig.nix ../config/zsh.nix ../config/fish.nix ]; + imports = [ ./term ./generalConfig.nix ]; config = lib.mkIf cfg.enable { elkowar.programs.tmux.enable = true; elkowar.programs.zsh.enable = cfg.enableZsh; elkowar.programs.fish.enable = cfg.enableFish; elkowar.generalConfig.shellAbbrs = { - vim = "nvim"; - tsh = "trash"; - cxmonad = "nvim /home/leon/.xmonad/lib/Config.hs"; - cnix = "cd ~/nixpkgs/ && nvim home.nix && cd -"; + vim = "nvim"; + tsh = "trash"; + cxmonad = "nvim /home/leon/.xmonad/lib/Config.hs"; + cnix = "cd ~/nixpkgs/ && nvim home.nix && cd -"; - gaa = "git add --all"; - gc = "git commit -m "; - gp = "git push"; - gs = "git status"; + gaa = "git add --all"; + gc = "git commit -m "; + gp = "git push"; + gs = "git status"; }; home.packages = with pkgs; [ + sources.manix direnv rnix-lsp nix-prefetch-git @@ -46,13 +48,13 @@ in fd jq - #(import (fetchTarball https://github.com/lf-/nix-doc/archive/main.tar.gz) {}) ]; programs = { home-manager.enable = true; htop.enable = true; + fzf = { enable = true; enableFishIntegration = cfg.enableFish; diff --git a/files/nix-stuff/nixpkgs/modules/default.nix b/files/nix-stuff/nixpkgs/modules/default.nix new file mode 100644 index 0000000..c5d00ef --- /dev/null +++ b/files/nix-stuff/nixpkgs/modules/default.nix @@ -0,0 +1 @@ +{...}: { imports = [ ./desktop ./term ./base.nix ./desktop.nix ./generalConfig.nix]; } diff --git a/files/nix-stuff/nixpkgs/profiles/desktop.nix b/files/nix-stuff/nixpkgs/modules/desktop.nix similarity index 53% rename from files/nix-stuff/nixpkgs/profiles/desktop.nix rename to files/nix-stuff/nixpkgs/modules/desktop.nix index 7292a41..a7a4c15 100644 --- a/files/nix-stuff/nixpkgs/profiles/desktop.nix +++ b/files/nix-stuff/nixpkgs/modules/desktop.nix @@ -1,33 +1,43 @@ { config, lib, pkgs, ... }: let - cfg = config.profiles.desktop; - elkowar_local = import ../local/default.nix {}; - myConf = import ../myConfig.nix; + cfg = config.elkowar.desktop; in { - options.profiles.desktop = { + options.elkowar.desktop = { enable = lib.mkEnableOption "Desktop configuration enabled"; }; + imports = [ ./desktop ]; + + + config = lib.mkIf cfg.enable { - gtk = import ../config/gtk.nix { inherit pkgs; inherit myConf; }; home.packages = with pkgs; [ - elkowar_local.bashtop - elkowar_local.liquidctl + (pkgs.callPackage ../packages/bashtop.nix { }) + (pkgs.callPackage ../packages/liquidctl.nix { }) + (pkgs.callPackage ../packages/scr.nix { }) + (pkgs.callPackage ../packages/boox.nix { }) cool-retro-term - simplescreenrecorder gromit-mpx + dragon-drop + #simplescreenrecorder #hyper-haskell ]; - programs = { - alacritty = import ../config/alacritty.nix { inherit pkgs; inherit myConf; }; # <- https://github.com/guibou/nixGL - feh = import ../config/feh.nix; - rofi = import ../config/rofi { inherit pkgs; inherit myConf; }; + elkowar.desktop = { + gtk.enable = true; + }; + + elkowar.programs = { + alacritty.enable = true; + rofi.enable = true; + }; + + programs = { mpv = { enable = true; bindings = { @@ -40,6 +50,11 @@ in }; }; + feh = { + enable = true; + keybindings = { zoom_in = "plus"; zoom_out = "minus"; }; + }; + }; services = { diff --git a/files/nix-stuff/nixpkgs/modules/desktop/alacritty.nix b/files/nix-stuff/nixpkgs/modules/desktop/alacritty.nix new file mode 100644 index 0000000..9a274ac --- /dev/null +++ b/files/nix-stuff/nixpkgs/modules/desktop/alacritty.nix @@ -0,0 +1,59 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.elkowar.programs.alacritty; +in +{ + options.elkowar.programs.alacritty = { + enable = lib.mkEnableOption "Enable alacritty"; + }; + + config = lib.mkIf cfg.enable { + programs.alacritty = { + enable = true; + package = ( + pkgs.writeScriptBin "alacritty" '' + #!/bin/sh + exec nixGLIntel ${pkgs.alacritty}/bin/alacritty "$@" + '' + ); + settings = { + window = { + padding.x = 20; + padding.y = 20; + dynamic_padding = true; + dynamic_title = true; + }; + cursor = { + style = "Block"; + unfocused_hollow = true; + }; + shell = "/home/leon/.nix-profile/bin/zsh"; + #shell = "/usr/bin/fish"; + mouse = { + double_click.threshold = 300; + triple_click.threshold = 300; + hide_when_typing = true; + url.launcher.program = "xdg-open"; + }; + + key_bindings = [ + { + key = "N"; + mods = "Control|Shift"; + action = "SpawnNewInstance"; + } + ]; + + background_opacity = 1; + font = { + size = 12; + #normal.family = "Iosevka"; + normal.family = "Terminus (TTF)"; + offset.x = 0; + offset.y = -2; + }; + colors = config.elkowar.desktop.colors; + }; + }; + }; +} diff --git a/files/nix-stuff/nixpkgs/modules/desktop/colors/default.nix b/files/nix-stuff/nixpkgs/modules/desktop/colors/default.nix new file mode 100644 index 0000000..a2d5649 --- /dev/null +++ b/files/nix-stuff/nixpkgs/modules/desktop/colors/default.nix @@ -0,0 +1,43 @@ +{ config, lib, ... }: +let + cfg = config.elkowar.desktop.colors; +in +with lib; { + options = { + elkowar.desktop.colors = { + primary = { + background = mkOption { type = types.str; }; + foreground = mkOption { type = types.str; }; + bg_darker = mkOption { type = types.str; }; + bg_lighter = mkOption { type = types.str; }; + }; + + #cursor = { + #background = mkOption { type = types.str; }; + #foreground = mkOption { type = types.str; }; + #}; + + normal = { + black = mkOption { type = types.str; }; + red = mkOption { type = types.str; }; + green = mkOption { type = types.str; }; + yellow = mkOption { type = types.str; }; + blue = mkOption { type = types.str; }; + magenta = mkOption { type = types.str; }; + cyan = mkOption { type = types.str; }; + white = mkOption { type = types.str; }; + }; + + bright = { + black = mkOption { type = types.str; }; + red = mkOption { type = types.str; }; + green = mkOption { type = types.str; }; + yellow = mkOption { type = types.str; }; + blue = mkOption { type = types.str; }; + magenta = mkOption { type = types.str; }; + cyan = mkOption { type = types.str; }; + white = mkOption { type = types.str; }; + }; + }; + }; +} diff --git a/files/nix-stuff/nixpkgs/modules/desktop/colors/gruvbox.nix b/files/nix-stuff/nixpkgs/modules/desktop/colors/gruvbox.nix new file mode 100644 index 0000000..36e6b47 --- /dev/null +++ b/files/nix-stuff/nixpkgs/modules/desktop/colors/gruvbox.nix @@ -0,0 +1,34 @@ +rec { + #accent = bright.cyan; + #accentDark = normal.cyan; + + primary = { + background = "#282828"; + foreground = "#ebdbb2"; + bg_darker = "#1d2021"; + bg_lighter = "#3c3836"; + }; + + normal = { + black = "#282828"; + red = "#cc241d"; + green = "#98971a"; + yellow = "#d79921"; + blue = "#458588"; + magenta = "#b16286"; + cyan = "#689d6a"; + white = "#a89984"; + }; + + bright = { + black = "#928374"; + red = "#fb4934"; + green = "#b8bb26"; + yellow = "#fabd2f"; + blue = "#83a598"; + magenta = "#d3869b"; + cyan = "#8ec07c"; + white = "#ebdbb2"; + }; + +} diff --git a/files/nix-stuff/nixpkgs/modules/desktop/default.nix b/files/nix-stuff/nixpkgs/modules/desktop/default.nix new file mode 100644 index 0000000..9d19248 --- /dev/null +++ b/files/nix-stuff/nixpkgs/modules/desktop/default.nix @@ -0,0 +1 @@ +{ ... }: { imports = [ ./alacritty.nix ./rofi ./colors ./gtk.nix ]; } diff --git a/files/nix-stuff/nixpkgs/config/firefox.nix b/files/nix-stuff/nixpkgs/modules/desktop/firefox.nix similarity index 100% rename from files/nix-stuff/nixpkgs/config/firefox.nix rename to files/nix-stuff/nixpkgs/modules/desktop/firefox.nix diff --git a/files/nix-stuff/nixpkgs/modules/desktop/gtk.nix b/files/nix-stuff/nixpkgs/modules/desktop/gtk.nix new file mode 100644 index 0000000..315d79d --- /dev/null +++ b/files/nix-stuff/nixpkgs/modules/desktop/gtk.nix @@ -0,0 +1,45 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.elkowar.desktop.gtk; +in +{ + options.elkowar.desktop.gtk = { + enable = lib.mkEnableOption "Enable gtk configuration"; + }; + + config = lib.mkIf cfg.enable { + gtk = { + enable = true; + theme.name = "phocus"; + iconTheme.name = "Numix"; + #font.name = "Terminus (TTF) 12"; + font.name = "xos4 Terminus 12"; + + gtk2.extraConfig = ''gtk-theme-name = "Adwaita-dark"''; + + gtk3.extraConfig = { + gtk-menu-images = 1; + gtk-xft-hinting = 1; + gtk-xft-rgba = "rgb"; + gtk-application-prefer-dark-theme = 1; + gtk-decoration-layout = ":"; + gtk-toolbar-style = "GTK_TOOLBAR_ICONS"; + gtk-toolbar-icon-size = "GTK_ICON_SIZE_LARGE_TOOLBAR"; + gtk-enable-even-sounds = 0; + gtk-enable-input-feedback-sounds = 0; + gtk-button-images = 1; + ctk-cursor-theme-name = "capitaine-cursors-light"; + gtk-cursor-theme-size = 0; + }; + + gtk3.extraCss = '' + .termite { + padding: 15px; + } + vte-terminal { + padding: 10px; + } + ''; + }; + }; +} diff --git a/files/nix-stuff/nixpkgs/modules/desktop/rofi/default.nix b/files/nix-stuff/nixpkgs/modules/desktop/rofi/default.nix new file mode 100644 index 0000000..fd92406 --- /dev/null +++ b/files/nix-stuff/nixpkgs/modules/desktop/rofi/default.nix @@ -0,0 +1,115 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.elkowar.programs.rofi; + myConf = import ../myConfig.nix; +in +{ + options.elkowar.programs.rofi = { + enable = lib.mkEnableOption "Enable rofi"; + }; + + config = { + programs.rofi = lib.mkIf cfg.enable { + enable = true; + package = pkgs.rofi.override { plugins = [ pkgs.rofi-emoji ]; }; + terminal = "${pkgs.alacritty}/bin/alacritty"; + theme = with config.elkowar.desktop.colors; builtins.toString (pkgs.writeText "rofi-theme" '' + configuration { + drun-display-format: "{icon} {name}"; + display-drun: "Applications"; + show-icons: true; + icon-theme: "Papirus"; + location: 0; + yoffset: 0; + xoffset: 0; + columns: 2; + fake-transparency: false; + hide-scrollbar: true; + bw: 0; + fullscreen: false; + show-icons: true; + terminal: "termite"; + sidebar-mode: false; + } + + * { + accent: ${normal.cyan}; + background: ${primary.bg_darker}; + background-light: ${primary.background}; + foreground: ${primary.foreground}; + on: ${normal.green}; + off: ${normal.blue}; + } + + * { + text-font: "Iosevka 12"; + + inputbar-margin: 3px 3px; + prompt-padding: 10px 10px; + entry-padding: 10px 0px 10px 0px; + list-element-padding: 10px; + list-element-margin: @inputbar-margin; + list-element-border: 0px 0px 0px 4px; + + apps-textbox-prompt-colon-padding: 10px -5px 0px 0px; + } + + #window { + width: 50%; + height: 60%; + padding: 40px 40px; + } + + * { + background-color: @background; + text-color: @foreground; + font: @text-font; + } + + inputbar, + prompt, + textbox-prompt-colon, + entry { + background-color: @background-light; + } + + #inputbar { + children: [ prompt, textbox-prompt-colon, entry ]; + margin: @inputbar-margin; + } + + #prompt { + padding: @prompt-padding; + background-color: @accent; + text-color: @background; + } + + #textbox-prompt-colon { + expand: false; + str: " :: "; + padding: @apps-textbox-prompt-colon-padding; + } + + #entry { + text-color: @accent; + padding: @entry-padding; + } + + #element { + padding: @list-element-padding; + margin: @list-element-margin; + border: @list-element-border; + background-color: @background-light; + border-color: @background-light; + } + + #element.selected { + background-color: @background-focus; + text-color: @accent; + border-color: @accent; + } + '' + ); + }; + }; +} diff --git a/files/nix-stuff/nixpkgs/config/generalConfig.nix b/files/nix-stuff/nixpkgs/modules/generalConfig.nix similarity index 100% rename from files/nix-stuff/nixpkgs/config/generalConfig.nix rename to files/nix-stuff/nixpkgs/modules/generalConfig.nix diff --git a/files/nix-stuff/nixpkgs/modules/term/default.nix b/files/nix-stuff/nixpkgs/modules/term/default.nix new file mode 100644 index 0000000..0dc4ba1 --- /dev/null +++ b/files/nix-stuff/nixpkgs/modules/term/default.nix @@ -0,0 +1 @@ +{ ... }: { imports = [ ./zsh ./fish ./tmux.nix ]; } diff --git a/files/nix-stuff/nixpkgs/config/fish.nix b/files/nix-stuff/nixpkgs/modules/term/fish/default.nix similarity index 100% rename from files/nix-stuff/nixpkgs/config/fish.nix rename to files/nix-stuff/nixpkgs/modules/term/fish/default.nix diff --git a/files/nix-stuff/nixpkgs/config/fish-prompt.fish b/files/nix-stuff/nixpkgs/modules/term/fish/fish-prompt.fish similarity index 100% rename from files/nix-stuff/nixpkgs/config/fish-prompt.fish rename to files/nix-stuff/nixpkgs/modules/term/fish/fish-prompt.fish diff --git a/files/nix-stuff/nixpkgs/config/tmux.nix b/files/nix-stuff/nixpkgs/modules/term/tmux.nix similarity index 100% rename from files/nix-stuff/nixpkgs/config/tmux.nix rename to files/nix-stuff/nixpkgs/modules/term/tmux.nix diff --git a/files/nix-stuff/nixpkgs/config/zsh.nix b/files/nix-stuff/nixpkgs/modules/term/zsh/default.nix similarity index 99% rename from files/nix-stuff/nixpkgs/config/zsh.nix rename to files/nix-stuff/nixpkgs/modules/term/zsh/default.nix index 3606a11..253453d 100644 --- a/files/nix-stuff/nixpkgs/config/zsh.nix +++ b/files/nix-stuff/nixpkgs/modules/term/zsh/default.nix @@ -169,7 +169,7 @@ in ''; plugins = let - sources = import ./zsh/nix/sources.nix; + sources = import ./nix/sources.nix; in [ { name = "fzf-tab"; src = sources.fzf-tab; } diff --git a/files/nix-stuff/nixpkgs/config/zsh/nix/sources.json b/files/nix-stuff/nixpkgs/modules/term/zsh/nix/sources.json similarity index 100% rename from files/nix-stuff/nixpkgs/config/zsh/nix/sources.json rename to files/nix-stuff/nixpkgs/modules/term/zsh/nix/sources.json diff --git a/files/nix-stuff/nixpkgs/config/zsh/nix/sources.nix b/files/nix-stuff/nixpkgs/modules/term/zsh/nix/sources.nix similarity index 100% rename from files/nix-stuff/nixpkgs/config/zsh/nix/sources.nix rename to files/nix-stuff/nixpkgs/modules/term/zsh/nix/sources.nix diff --git a/files/nix-stuff/nixpkgs/config/prompt.zsh b/files/nix-stuff/nixpkgs/modules/term/zsh/prompt.zsh similarity index 100% rename from files/nix-stuff/nixpkgs/config/prompt.zsh rename to files/nix-stuff/nixpkgs/modules/term/zsh/prompt.zsh diff --git a/files/nix-stuff/nixpkgs/myConfig.nix b/files/nix-stuff/nixpkgs/myConfig.nix deleted file mode 100644 index 0cc5a85..0000000 --- a/files/nix-stuff/nixpkgs/myConfig.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - monospaceFont = "Terminus (TTF)"; - colors = rec { - accent = light.cyan; - accentDark = normal.cyan; - - primary = { - background = "#282828"; - foreground = "#ebdbb2"; - }; - normal = { - black = "#282828"; - red = "#cc241d"; - green = "#98971a"; - yellow = "#d79921"; - blue = "#458588"; - magenta = "#b16286"; - cyan = "#689d6a"; - white = "#a89984"; - }; - light = { - black = "#928374"; - red = "#fb4934"; - green = "#b8bb26"; - yellow = "#fabd2f"; - blue = "#83a598"; - magenta = "#d3869b"; - cyan = "#8ec07c"; - white = "#ebdbb2"; - }; - }; -} diff --git a/files/nix-stuff/nixpkgs/nix/sources.json b/files/nix-stuff/nixpkgs/nix/sources.json new file mode 100644 index 0000000..60440ca --- /dev/null +++ b/files/nix-stuff/nixpkgs/nix/sources.json @@ -0,0 +1,38 @@ +{ + "manix": { + "branch": "master", + "description": "A fast CLI documentation searcher for Nix.", + "homepage": null, + "owner": "mlvzk", + "repo": "manix", + "rev": "a2eb8111f779903fed3ce8e411dd3e255466ada5", + "sha256": "03pp4ij0bg9chqlqanymjh7iqcjb46nzbjc5wn5i7gyjfrcz7j54", + "type": "tarball", + "url": "https://github.com/mlvzk/manix/archive/a2eb8111f779903fed3ce8e411dd3e255466ada5.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + }, + "niv": { + "branch": "master", + "description": "Easy dependency management for Nix projects", + "homepage": "https://github.com/nmattia/niv", + "owner": "nmattia", + "repo": "niv", + "rev": "e82eb322ea32a747a51c431d7787221bcc6d9038", + "sha256": "1fy4dcr05d80diwlxmh42xnjm5ki1pkbky38smvlqjaky2y2f71f", + "type": "tarball", + "url": "https://github.com/nmattia/niv/archive/e82eb322ea32a747a51c431d7787221bcc6d9038.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + }, + "nixpkgs": { + "branch": "release-20.03", + "description": "Nix Packages collection", + "homepage": null, + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9319284c1d02e2969bb6340e691e06105e87015f", + "sha256": "1g3wli01qnbjmf9x2wqfjk65z9h94cglrljpcc0slz5g0g6pjg99", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/9319284c1d02e2969bb6340e691e06105e87015f.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + } +} diff --git a/files/nix-stuff/nixpkgs/nix/sources.nix b/files/nix-stuff/nixpkgs/nix/sources.nix new file mode 100644 index 0000000..7bd0f3e --- /dev/null +++ b/files/nix-stuff/nixpkgs/nix/sources.nix @@ -0,0 +1,138 @@ +# This file has been generated by Niv. + +let + + # + # The fetchers. fetch_ fetches specs of type . + # + + fetch_file = pkgs: spec: + if spec.builtin or true then + builtins_fetchurl { inherit (spec) url sha256; } + else + pkgs.fetchurl { inherit (spec) url sha256; }; + + fetch_tarball = pkgs: name: spec: + let + ok = str: ! builtins.isNull (builtins.match "[a-zA-Z0-9+-._?=]" str); + # sanitize the name, though nix will still fail if name starts with period + name' = stringAsChars (x: if ! ok x then "-" else x) "${name}-src"; + in + if spec.builtin or true then + builtins_fetchTarball { name = name'; inherit (spec) url sha256; } + else + pkgs.fetchzip { name = name'; inherit (spec) url sha256; }; + + fetch_git = spec: + builtins.fetchGit { url = spec.repo; inherit (spec) rev ref; }; + + fetch_local = spec: spec.path; + + fetch_builtin-tarball = name: throw + ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=tarball -a builtin=true''; + + fetch_builtin-url = name: throw + ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=file -a builtin=true''; + + # + # Various helpers + # + + # The set of packages used when specs are fetched using non-builtins. + mkPkgs = sources: + let + sourcesNixpkgs = + import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) {}; + hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; + hasThisAsNixpkgsPath = == ./.; + in + if builtins.hasAttr "nixpkgs" sources + then sourcesNixpkgs + else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then + import {} + else + abort + '' + Please specify either (through -I or NIX_PATH=nixpkgs=...) or + add a package called "nixpkgs" to your sources.json. + ''; + + # The actual fetching function. + fetch = pkgs: name: spec: + + if ! builtins.hasAttr "type" spec then + abort "ERROR: niv spec ${name} does not have a 'type' attribute" + else if spec.type == "file" then fetch_file pkgs spec + else if spec.type == "tarball" then fetch_tarball pkgs name spec + else if spec.type == "git" then fetch_git spec + else if spec.type == "local" then fetch_local spec + else if spec.type == "builtin-tarball" then fetch_builtin-tarball name + else if spec.type == "builtin-url" then fetch_builtin-url name + else + abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; + + # Ports of functions for older nix versions + + # a Nix version of mapAttrs if the built-in doesn't exist + mapAttrs = builtins.mapAttrs or ( + f: set: with builtins; + listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) + ); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 + range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 + stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 + stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); + concatStrings = builtins.concatStringsSep ""; + + # fetchTarball version that is compatible between all the versions of Nix + builtins_fetchTarball = { url, name, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchTarball; + in + if lessThan nixVersion "1.12" then + fetchTarball { inherit name url; } + else + fetchTarball attrs; + + # fetchurl version that is compatible between all the versions of Nix + builtins_fetchurl = { url, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchurl; + in + if lessThan nixVersion "1.12" then + fetchurl { inherit url; } + else + fetchurl attrs; + + # Create the final "sources" from the config + mkSources = config: + mapAttrs ( + name: spec: + if builtins.hasAttr "outPath" spec + then abort + "The values in sources.json should not have an 'outPath' attribute" + else + spec // { outPath = fetch config.pkgs name spec; } + ) config.sources; + + # The "config" used by the fetchers + mkConfig = + { sourcesFile ? ./sources.json + , sources ? builtins.fromJSON (builtins.readFile sourcesFile) + , pkgs ? mkPkgs sources + }: rec { + # The sources, i.e. the attribute set of spec name to spec + inherit sources; + + # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers + inherit pkgs; + }; +in +mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); } diff --git a/files/nix-stuff/nixpkgs/overlay/cool-retro-term.nix b/files/nix-stuff/nixpkgs/overlay/cool-retro-term.nix new file mode 100644 index 0000000..2e69e50 --- /dev/null +++ b/files/nix-stuff/nixpkgs/overlay/cool-retro-term.nix @@ -0,0 +1,6 @@ +{ pkgs }: + +pkgs.writeScriptBin "cool-retro-term" '' + #!/bin/sh + exec nixGLIntel ${pkgs.cool-retro-term}/bin/cool-retro-term "$@" +'' diff --git a/files/nix-stuff/nixpkgs/overlay/default.nix b/files/nix-stuff/nixpkgs/overlay/default.nix new file mode 100644 index 0000000..605f1fe --- /dev/null +++ b/files/nix-stuff/nixpkgs/overlay/default.nix @@ -0,0 +1,3 @@ +self: super: { + cool-retro-term = super.callPackage ./cool-retro-term.nix { }; +} diff --git a/files/nix-stuff/nixpkgs/local/packages/bashtop.nix b/files/nix-stuff/nixpkgs/packages/bashtop.nix similarity index 100% rename from files/nix-stuff/nixpkgs/local/packages/bashtop.nix rename to files/nix-stuff/nixpkgs/packages/bashtop.nix diff --git a/files/nix-stuff/nixpkgs/packages/boox.nix b/files/nix-stuff/nixpkgs/packages/boox.nix new file mode 100644 index 0000000..29ff97a --- /dev/null +++ b/files/nix-stuff/nixpkgs/packages/boox.nix @@ -0,0 +1,13 @@ +{ pkgs ? import { } }: +pkgs.stdenv.mkDerivation { + name = "boox"; + src = pkgs.fetchFromGitHub { + owner = "BanchouBoo"; + repo = "boox"; + rev = "bbbb883436d505b5f85cbb3024d14c82da548d9b"; + sha256 = "1xy3g1gyzhmm87cg5dyal55ysj2zrfzk2myrws5v0ck63zyq5593"; + }; + + buildInputs = with pkgs; [ xorg.libxcb xorg.xcbutilcursor pkgconfig ]; + installFlags = [ "PREFIX=$(out)" ]; +} diff --git a/files/nix-stuff/nixpkgs/local/packages/liquidctl.nix b/files/nix-stuff/nixpkgs/packages/liquidctl.nix similarity index 100% rename from files/nix-stuff/nixpkgs/local/packages/liquidctl.nix rename to files/nix-stuff/nixpkgs/packages/liquidctl.nix diff --git a/files/nix-stuff/nixpkgs/packages/scr.nix b/files/nix-stuff/nixpkgs/packages/scr.nix new file mode 100644 index 0000000..fedb08d --- /dev/null +++ b/files/nix-stuff/nixpkgs/packages/scr.nix @@ -0,0 +1,34 @@ +{ pkgs ? import { } }: +let + + scr = pkgs.fetchFromGitHub { + owner = "6gk"; + repo = "scr"; + rev = "4064159e291e59f4543a676b872c91fe049a3f1e"; + sha256 = "1pq0w3qpap6rsgxashphq5xlhvdyhryjaz7dh0l5rfmh7ydpzf12"; + }; +in +pkgs.runCommand "scr" +{ buildInputs = with pkgs; [ slop ffmpeg dmenu xclip shotgun ]; } + '' + mkdir -p $out/bin + cp ${scr}/scr $out/bin/scr + sed -i "2 i export PATH=$PATH" $out/bin/scr + '' + + +#pkgs.stdenv.mkDerivation { +#name = "scr"; +#src = pkgs.fetchFromGitHub { +#owner = "6gk"; +#repo = "scr"; +#rev = "4064159e291e59f4543a676b872c91fe049a3f1e"; +#sha256 = "1pq0w3qpap6rsgxashphq5xlhvdyhryjaz7dh0l5rfmh7ydpzf12"; +#}; + +#nativeBuildInputs = [ pkgs.makeWrapper ]; +#installPhase = "install -m755 -D ./scr $out/bin/scr"; +#postFixup = '' +#wrapProgram "$out/bin/scr" --prefix PATH : ${pkgs.lib.makeBinPath (with pkgs; [ slop ffmpeg dmenu xclip shotgun ])} +#''; +#} diff --git a/files/scripts/screenvideo.sh b/files/scripts/screenvideo.sh new file mode 100755 index 0000000..5b7d580 --- /dev/null +++ b/files/scripts/screenvideo.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +rec_filename="$HOME/Bilder/screenvids/$(date '+%Y-%m-%d_%H-%M-%S').mp4" +scr -m s -f 30 -c "$rec_filename" +dragon --and-exit "$rec_filename" diff --git a/files/scripts/scrotshadow.sh b/files/scripts/scrotshadow.sh new file mode 100644 index 0000000..05a66b4 --- /dev/null +++ b/files/scripts/scrotshadow.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# NAME: dropshadow.sh +# VERSION: +# AUTHOR: (c) 2013 Glutanimate +# DESCRIPTION: - adds transparent dropshadow to images (e.g. screenshots) +# - moves them to predefined screenshot folder +# FEATURES: +# DEPENDENCIES: imagemagick suite +# +# LICENSE: MIT license (http://opensource.org/licenses/MIT) +# +# NOTICE: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +# PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +# OR OTHER DEALINGS IN THE SOFTWARE. +# +# +# USAGE: dropshadow.sh + +SCREENSHOTFOLDER="$HOME/Pictures/Screenshots" + + +FILE="${1}" +FILENAME="${FILE##*/}" +FILEBASE="${FILENAME%.*}" + +convert "${FILE}" \( +clone -background black -shadow 80x20+0+15 \) +swap -background transparent -layers merge +repage "$SCREENSHOTFOLDER/${FILEBASE}.png" + +rm "$FILE" #remove this line to preserve original image