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