From a1da8a8408c3be99cf0da2a16eefe138687ec04e Mon Sep 17 00:00:00 2001 From: Jeschli Date: Sat, 16 Nov 2019 04:10:53 +0100 Subject: j emacs: +spacemacs theme --- jeschli/2configs/emacs.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index f866bbc..614f195 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -210,6 +210,7 @@ let epkgs.melpaPackages.evil epkgs.melpaPackages.google-this epkgs.melpaPackages.monokai-alt-theme + epkgs.melpaPackages.spacemacs-theme epkgs.melpaPackages.zenburn-theme # development -- cgit v1.3.1 From 01b9ce8cd33eb1a77cb811eba40aed5a46789093 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:40:28 +0100 Subject: j haskell: intial commit --- jeschli/2configs/haskell.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 jeschli/2configs/haskell.nix diff --git a/jeschli/2configs/haskell.nix b/jeschli/2configs/haskell.nix new file mode 100644 index 0000000..2e00d06 --- /dev/null +++ b/jeschli/2configs/haskell.nix @@ -0,0 +1,19 @@ +{ config, pkgs, ... }: +let + all-hies = import (fetchTarball "https://github.com/infinisil/all-hies/tarball/master") {}; +in +{ + environment.systemPackages = with pkgs; [ + cabal2nix + gcc + ghc + haskellPackages.cabal-install + haskellPackages.ghcid + haskellPackages.hindent + haskellPackages.hlint + haskellPackages.hoogle + haskellPackages.stack + haskellPackages.stylish-haskell + (all-hies.selection { selector = p: {inherit (p) ghc864; }; }) + ]; +} -- cgit v1.3.1 From 7abf41032bd3b7163850d7f58ae6bc0de0048d71 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:30:49 +0100 Subject: j reagenzglas: add haskell --- jeschli/1systems/reagenzglas/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index 7596f17..518dcbc 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -7,6 +7,7 @@ + ./desktop.nix ./i3-configuration.nix -- cgit v1.3.1 From f2dc735e6e50d4d09db10219ca5ba56ef278fcd1 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:32:02 +0100 Subject: j reagenzglas: reformat environment.systemPackages --- jeschli/1systems/reagenzglas/config.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index 518dcbc..344aa67 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -37,10 +37,12 @@ # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ - wget vim git - rofi ag alacritty + git + rofi + vim + wget ]; users.users.ombi = { -- cgit v1.3.1 From 12e556783ee5c51c316228eaaa23721f1e1507fe Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:32:45 +0100 Subject: j reagenzglas: add copyq --- jeschli/1systems/reagenzglas/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index 344aa67..cf229db 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -39,6 +39,7 @@ environment.systemPackages = with pkgs; [ ag alacritty + copyq git rofi vim -- cgit v1.3.1 From c99406ac8762023262c708f9dc40a48c2a374b11 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:33:09 +0100 Subject: j reagenzglas: add direnv --- jeschli/1systems/reagenzglas/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index cf229db..3ace77b 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -40,6 +40,7 @@ ag alacritty copyq + direnv git rofi vim -- cgit v1.3.1 From dc8bc8d3733813b53ffd7dec542dbcedd8d616ef Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:33:33 +0100 Subject: j reagenzglas: add go --- jeschli/1systems/reagenzglas/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index 3ace77b..f8c7d34 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -41,6 +41,7 @@ alacritty copyq direnv + go git rofi vim -- cgit v1.3.1 From 21dffdc8fadada7789f56bc2a600234efa0be437 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:34:08 +0100 Subject: j emacs: set racer paths for use with a shell-nix --- jeschli/2configs/emacs.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index 614f195..0a81048 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -123,6 +123,8 @@ let # # This requires rls and racer to be installed on the system rustDevelopment = '' + (setq racer-rust-src-path nil) ;; read from shell-nix + (setq racer-cmd "racer") ;; read from shell-nix (add-hook 'rust-mode-hook #'racer-mode) (add-hook 'rust-mode-hook (lambda() (local-set-key (kbd "C-c C-d") 'racer-describe) -- cgit v1.3.1 From 6e5d209e963a7850c73608999f95ac104657026c Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:37:07 +0100 Subject: j reagenzglas: i3-config: i3-sensible-terminal -> alacritty --- jeschli/1systems/reagenzglas/i3-configuration.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jeschli/1systems/reagenzglas/i3-configuration.nix b/jeschli/1systems/reagenzglas/i3-configuration.nix index c9968c1..93809a8 100644 --- a/jeschli/1systems/reagenzglas/i3-configuration.nix +++ b/jeschli/1systems/reagenzglas/i3-configuration.nix @@ -21,8 +21,8 @@ let floating_modifier $mod # start a terminal - bindsym $mod+Return exec i3-sensible-terminal - + bindsym $mod+Return exec alacritty + # kill focused window bindsym $mod+Shift+q kill -- cgit v1.3.1 From 593da3dd339befbc65846709b4f7c9ee40ff0072 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:37:44 +0100 Subject: j reagenzglas: i3 config bind rofi to meta+x --- jeschli/1systems/reagenzglas/i3-configuration.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/i3-configuration.nix b/jeschli/1systems/reagenzglas/i3-configuration.nix index 93809a8..f7bb3af 100644 --- a/jeschli/1systems/reagenzglas/i3-configuration.nix +++ b/jeschli/1systems/reagenzglas/i3-configuration.nix @@ -32,6 +32,7 @@ let # start dmenu (a program launcher) bindsym $mod+d exec ${pkgs.rofi}/bin/rofi -modi drun#run -combi-modi drun#run -show combi -show-icons -display-combi run + bindsym $mod+x exec ${pkgs.rofi}/bin/rofi -modi window -show window -auto-select # There also is the (new) i3-dmenu-desktop which only displays applications # shipping a .desktop file. It is a wrapper around dmenu, so you need that # installed. -- cgit v1.3.1 From 5bfa88f4197fa2326c3af2bf47167c7758ac2178 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:38:52 +0100 Subject: j reagenzglas: i3 config: remove trailing whitespaces --- jeschli/1systems/reagenzglas/i3-configuration.nix | 61 ++++++++++++----------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/jeschli/1systems/reagenzglas/i3-configuration.nix b/jeschli/1systems/reagenzglas/i3-configuration.nix index f7bb3af..576553e 100644 --- a/jeschli/1systems/reagenzglas/i3-configuration.nix +++ b/jeschli/1systems/reagenzglas/i3-configuration.nix @@ -5,89 +5,90 @@ with pkgs; let i3_config_file = pkgs.writeText "config" '' set $mod Mod4 - + font pango:monospace 8 - + #font pango:DejaVu Sans Mono 8 - + # Before i3 v4.8, we used to recommend this one as the default: # font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 # The font above is very space-efficient, that is, it looks good, sharp and # clear in small sizes. However, its unicode glyph coverage is limited, the old # X core fonts rendering does not support right-to-left and this being a bitmap # font, it doesn’t scale on retina/hidpi displays. - + # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod - + # start a terminal bindsym $mod+Return exec alacritty # kill focused window bindsym $mod+Shift+q kill - + # start dmenu (a program launcher) # bindsym $mod+d exec dmenu_run # start dmenu (a program launcher) bindsym $mod+d exec ${pkgs.rofi}/bin/rofi -modi drun#run -combi-modi drun#run -show combi -show-icons -display-combi run - + bindsym $mod+x exec ${pkgs.rofi}/bin/rofi -modi window -show window -auto-select + # There also is the (new) i3-dmenu-desktop which only displays applications # shipping a .desktop file. It is a wrapper around dmenu, so you need that # installed. # bindsym $mod+d exec --no-startup-id i3-dmenu-desktop - + # change focus bindsym $mod+j focus left bindsym $mod+k focus down bindsym $mod+l focus up bindsym $mod+semicolon focus right - + # alternatively, you can use the cursor keys: bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right - + # move focused window bindsym $mod+Shift+j move left bindsym $mod+Shift+k move down bindsym $mod+Shift+l move up bindsym $mod+Shift+colon move right - + # alternatively, you can use the cursor keys: bindsym $mod+Shift+Left move left bindsym $mod+Shift+Down move down bindsym $mod+Shift+Up move up bindsym $mod+Shift+Right move right - + # split in horizontal orientation bindsym $mod+h split h - + # split in vertical orientation bindsym $mod+v split v - + # enter fullscreen mode for the focused container bindsym $mod+f fullscreen toggle - + # change container layout (stacked, tabbed, toggle split) bindsym $mod+s layout stacking bindsym $mod+w layout tabbed bindsym $mod+e layout toggle split - + # toggle tiling / floating bindsym $mod+Shift+space floating toggle - + # change focus between tiling / floating windows bindsym $mod+space focus mode_toggle - + # focus the parent container bindsym $mod+a focus parent - + # focus the child container #bindsym $mod+d focus child - + # Define names for default workspaces for which we configure key bindings later on. # We use variables to avoid repeating the names in multiple places. set $ws1 "1" @@ -100,7 +101,7 @@ let set $ws8 "8" set $ws9 "9" set $ws10 "10" - + # switch to workspace bindsym $mod+1 workspace $ws1 bindsym $mod+2 workspace $ws2 @@ -112,7 +113,7 @@ let bindsym $mod+8 workspace $ws8 bindsym $mod+9 workspace $ws9 bindsym $mod+0 workspace $ws10 - + # move focused container to workspace bindsym $mod+Shift+1 move container to workspace $ws1 bindsym $mod+Shift+2 move container to workspace $ws2 @@ -124,18 +125,18 @@ let bindsym $mod+Shift+8 move container to workspace $ws8 bindsym $mod+Shift+9 move container to workspace $ws9 bindsym $mod+Shift+0 move container to workspace $ws10 - + # reload the configuration file bindsym $mod+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart # exit i3 (logs you out of your X session) bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" - + # resize window (you can also use the mouse for that) mode "resize" { # These bindings trigger as soon as you enter the resize mode - + # Pressing left will shrink the window’s width. # Pressing right will grow the window’s width. # Pressing up will shrink the window’s height. @@ -144,27 +145,27 @@ let bindsym k resize grow height 10 px or 10 ppt bindsym l resize shrink height 10 px or 10 ppt bindsym semicolon resize grow width 10 px or 10 ppt - + # same bindings, but for the arrow keys bindsym Left resize shrink width 10 px or 10 ppt bindsym Down resize grow height 10 px or 10 ppt bindsym Up resize shrink height 10 px or 10 ppt bindsym Right resize grow width 10 px or 10 ppt - + # back to normal: Enter or Escape or $mod+r bindsym Return mode "default" bindsym Escape mode "default" bindsym $mod+r mode "default" } - + bindsym $mod+r mode "resize" - + # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) bar { status_command i3status } - ''; + ''; in { -- cgit v1.3.1 From 731d85d4f01d6cc2cc7586ab5a392404d8b4d7ea Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 23:48:13 +0100 Subject: j eamcs: Fix org-capture wrong-argument bug --- jeschli/2configs/emacs-org-agenda.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeschli/2configs/emacs-org-agenda.nix b/jeschli/2configs/emacs-org-agenda.nix index f9139fc..9167889 100644 --- a/jeschli/2configs/emacs-org-agenda.nix +++ b/jeschli/2configs/emacs-org-agenda.nix @@ -144,7 +144,7 @@ let (interactive) (save-excursion (beginning-of-line 0) - (org-remove-empty-drawer-at "LOGBOOK" (point)))) + (org-remove-empty-drawer-at (point)))) (add-hook 'org-clock-out-hook 'bh/remove-empty-drawer-on-clock-out 'append) -- cgit v1.3.1 From 39bea194704bfb16cb89922856f42566e4353f83 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Thu, 12 Dec 2019 10:55:55 +0100 Subject: j emacs: Update refile file --- jeschli/2configs/emacs-org-agenda.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/jeschli/2configs/emacs-org-agenda.nix b/jeschli/2configs/emacs-org-agenda.nix index 9167889..0420dc4 100644 --- a/jeschli/2configs/emacs-org-agenda.nix +++ b/jeschli/2configs/emacs-org-agenda.nix @@ -114,29 +114,29 @@ let ("NEXT" ("WAITING") ("CANCELLED") ("HOLD")) ("DONE" ("WAITING") ("CANCELLED") ("HOLD"))))) -(setq org-directory "~/projects/notes_private") -(setq org-default-notes-file "~/projects/notes_private/refile.org") +(setq org-directory "~/projects/notes_privat") +(setq org-default-notes-file "~/projects/notes_privat/refile.org") ;; I use C-c c to start capture mode (global-set-key (kbd "C-c c") 'org-capture) ;; Capture templates for: TODO tasks, Notes, appointments, phone calls, meetings, and org-protocol (setq org-capture-templates - (quote (("t" "todo" entry (file "~/git/org/refile.org") + (quote (("t" "todo" entry (file org-default-notes-file) "* TODO %?\n%U\n%a\n" :clock-in t :clock-resume t) - ("r" "respond" entry (file "~/git/org/refile.org") + ("r" "respond" entry (file org-default-notes-file) "* NEXT Respond to %:from on %:subject\nSCHEDULED: %t\n%U\n%a\n" :clock-in t :clock-resume t :immediate-finish t) - ("n" "note" entry (file "~/git/org/refile.org") + ("n" "note" entry (file org-default-notes-file) "* %? :NOTE:\n%U\n%a\n" :clock-in t :clock-resume t) ("j" "Journal" entry (file+datetree "~/git/org/diary.org") "* %?\n%U\n" :clock-in t :clock-resume t) - ("w" "org-protocol" entry (file "~/git/org/refile.org") + ("w" "org-protocol" entry (file org-default-notes-file) "* TODO Review %c\n%U\n" :immediate-finish t) - ("m" "Meeting" entry (file "~/git/org/refile.org") + ("m" "Meeting" entry (file org-default-notes-file) "* MEETING with %? :MEETING:\n%U" :clock-in t :clock-resume t) - ("p" "Phone call" entry (file "~/git/org/refile.org") + ("p" "Phone call" entry (file org-default-notes-file) "* PHONE %? :PHONE:\n%U" :clock-in t :clock-resume t) - ("h" "Habit" entry (file "~/git/org/refile.org") + ("h" "Habit" entry (file org-default-notes-file) "* NEXT %?\n%U\n%a\nSCHEDULED: %(format-time-string \"%<<%Y-%m-%d %a .+1d/3d>>\")\n:PROPERTIES:\n:STYLE: habit\n:REPEAT_TO_STATE: NEXT\n:END:\n")))) ;; Remove empty LOGBOOK drawers on clock out -- cgit v1.3.1 From 56dcd9475966d2580ed0a96c2393531988cb04ae Mon Sep 17 00:00:00 2001 From: Jeschli Date: Fri, 20 Dec 2019 08:56:06 +0100 Subject: j reagenzglas: add audio --- jeschli/1systems/reagenzglas/config.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index f8c7d34..a3bc7b5 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -54,13 +54,16 @@ }; users.users.jeschli = { - isNormalUser = true; + isNormalUser = true; + extraGroups = [ "audio" ]; }; # services.xserver.synaptics.enable = true; services.xserver.libinput.enable = true; services.xserver.libinput.disableWhileTyping = true; + hardware.pulseaudio.enable = true; + #Enable ssh daemon services.openssh.enable = true; -- cgit v1.3.1 From 6de8ec42621e46cf7d9fedb69e79a8c5b1caa769 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Sat, 16 Nov 2019 04:10:53 +0100 Subject: j emacs: +spacemacs theme --- jeschli/2configs/emacs.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index f866bbc..614f195 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -210,6 +210,7 @@ let epkgs.melpaPackages.evil epkgs.melpaPackages.google-this epkgs.melpaPackages.monokai-alt-theme + epkgs.melpaPackages.spacemacs-theme epkgs.melpaPackages.zenburn-theme # development -- cgit v1.3.1 From ce20682498565dab632b3e30b91607c0535a657a Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:40:28 +0100 Subject: j haskell: intial commit --- jeschli/2configs/haskell.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 jeschli/2configs/haskell.nix diff --git a/jeschli/2configs/haskell.nix b/jeschli/2configs/haskell.nix new file mode 100644 index 0000000..2e00d06 --- /dev/null +++ b/jeschli/2configs/haskell.nix @@ -0,0 +1,19 @@ +{ config, pkgs, ... }: +let + all-hies = import (fetchTarball "https://github.com/infinisil/all-hies/tarball/master") {}; +in +{ + environment.systemPackages = with pkgs; [ + cabal2nix + gcc + ghc + haskellPackages.cabal-install + haskellPackages.ghcid + haskellPackages.hindent + haskellPackages.hlint + haskellPackages.hoogle + haskellPackages.stack + haskellPackages.stylish-haskell + (all-hies.selection { selector = p: {inherit (p) ghc864; }; }) + ]; +} -- cgit v1.3.1 From cbb58225254e15fb3f57942314fe9d23d8c9bd29 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:30:49 +0100 Subject: j reagenzglas: add haskell --- jeschli/1systems/reagenzglas/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index 7596f17..518dcbc 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -7,6 +7,7 @@ + ./desktop.nix ./i3-configuration.nix -- cgit v1.3.1 From d28e3870aa385014f86a8b97298188f316e8c9cb Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:32:02 +0100 Subject: j reagenzglas: reformat environment.systemPackages --- jeschli/1systems/reagenzglas/config.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index 518dcbc..344aa67 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -37,10 +37,12 @@ # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ - wget vim git - rofi ag alacritty + git + rofi + vim + wget ]; users.users.ombi = { -- cgit v1.3.1 From 7cfb5779616c2def0d5c84cea1709b0ed7159dbe Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:32:45 +0100 Subject: j reagenzglas: add copyq --- jeschli/1systems/reagenzglas/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index 344aa67..cf229db 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -39,6 +39,7 @@ environment.systemPackages = with pkgs; [ ag alacritty + copyq git rofi vim -- cgit v1.3.1 From ada21cc6419534fc150426fb43b9900cfe8ccc7a Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:33:09 +0100 Subject: j reagenzglas: add direnv --- jeschli/1systems/reagenzglas/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index cf229db..3ace77b 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -40,6 +40,7 @@ ag alacritty copyq + direnv git rofi vim -- cgit v1.3.1 From 33c607370d6e78a9862a4ff735a5fc840a1211d0 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:33:33 +0100 Subject: j reagenzglas: add go --- jeschli/1systems/reagenzglas/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index 3ace77b..f8c7d34 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -41,6 +41,7 @@ alacritty copyq direnv + go git rofi vim -- cgit v1.3.1 From f4728e525ae08ba588c19c99046b1ad3cf7ce6bb Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:34:08 +0100 Subject: j emacs: set racer paths for use with a shell-nix --- jeschli/2configs/emacs.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index 614f195..0a81048 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -123,6 +123,8 @@ let # # This requires rls and racer to be installed on the system rustDevelopment = '' + (setq racer-rust-src-path nil) ;; read from shell-nix + (setq racer-cmd "racer") ;; read from shell-nix (add-hook 'rust-mode-hook #'racer-mode) (add-hook 'rust-mode-hook (lambda() (local-set-key (kbd "C-c C-d") 'racer-describe) -- cgit v1.3.1 From ba64228cd72fc855b1819dd70e3d2530266e6af5 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:37:07 +0100 Subject: j reagenzglas: i3-config: i3-sensible-terminal -> alacritty --- jeschli/1systems/reagenzglas/i3-configuration.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jeschli/1systems/reagenzglas/i3-configuration.nix b/jeschli/1systems/reagenzglas/i3-configuration.nix index c9968c1..93809a8 100644 --- a/jeschli/1systems/reagenzglas/i3-configuration.nix +++ b/jeschli/1systems/reagenzglas/i3-configuration.nix @@ -21,8 +21,8 @@ let floating_modifier $mod # start a terminal - bindsym $mod+Return exec i3-sensible-terminal - + bindsym $mod+Return exec alacritty + # kill focused window bindsym $mod+Shift+q kill -- cgit v1.3.1 From 0a419c647ed51bbeb5d45ec568e2efa3bda4c358 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:37:44 +0100 Subject: j reagenzglas: i3 config bind rofi to meta+x --- jeschli/1systems/reagenzglas/i3-configuration.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/i3-configuration.nix b/jeschli/1systems/reagenzglas/i3-configuration.nix index 93809a8..f7bb3af 100644 --- a/jeschli/1systems/reagenzglas/i3-configuration.nix +++ b/jeschli/1systems/reagenzglas/i3-configuration.nix @@ -32,6 +32,7 @@ let # start dmenu (a program launcher) bindsym $mod+d exec ${pkgs.rofi}/bin/rofi -modi drun#run -combi-modi drun#run -show combi -show-icons -display-combi run + bindsym $mod+x exec ${pkgs.rofi}/bin/rofi -modi window -show window -auto-select # There also is the (new) i3-dmenu-desktop which only displays applications # shipping a .desktop file. It is a wrapper around dmenu, so you need that # installed. -- cgit v1.3.1 From e4ab2b9eece82370e4e05a5686208dbacdb45f0d Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 19:38:52 +0100 Subject: j reagenzglas: i3 config: remove trailing whitespaces --- jeschli/1systems/reagenzglas/i3-configuration.nix | 61 ++++++++++++----------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/jeschli/1systems/reagenzglas/i3-configuration.nix b/jeschli/1systems/reagenzglas/i3-configuration.nix index f7bb3af..576553e 100644 --- a/jeschli/1systems/reagenzglas/i3-configuration.nix +++ b/jeschli/1systems/reagenzglas/i3-configuration.nix @@ -5,89 +5,90 @@ with pkgs; let i3_config_file = pkgs.writeText "config" '' set $mod Mod4 - + font pango:monospace 8 - + #font pango:DejaVu Sans Mono 8 - + # Before i3 v4.8, we used to recommend this one as the default: # font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 # The font above is very space-efficient, that is, it looks good, sharp and # clear in small sizes. However, its unicode glyph coverage is limited, the old # X core fonts rendering does not support right-to-left and this being a bitmap # font, it doesn’t scale on retina/hidpi displays. - + # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod - + # start a terminal bindsym $mod+Return exec alacritty # kill focused window bindsym $mod+Shift+q kill - + # start dmenu (a program launcher) # bindsym $mod+d exec dmenu_run # start dmenu (a program launcher) bindsym $mod+d exec ${pkgs.rofi}/bin/rofi -modi drun#run -combi-modi drun#run -show combi -show-icons -display-combi run - + bindsym $mod+x exec ${pkgs.rofi}/bin/rofi -modi window -show window -auto-select + # There also is the (new) i3-dmenu-desktop which only displays applications # shipping a .desktop file. It is a wrapper around dmenu, so you need that # installed. # bindsym $mod+d exec --no-startup-id i3-dmenu-desktop - + # change focus bindsym $mod+j focus left bindsym $mod+k focus down bindsym $mod+l focus up bindsym $mod+semicolon focus right - + # alternatively, you can use the cursor keys: bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right - + # move focused window bindsym $mod+Shift+j move left bindsym $mod+Shift+k move down bindsym $mod+Shift+l move up bindsym $mod+Shift+colon move right - + # alternatively, you can use the cursor keys: bindsym $mod+Shift+Left move left bindsym $mod+Shift+Down move down bindsym $mod+Shift+Up move up bindsym $mod+Shift+Right move right - + # split in horizontal orientation bindsym $mod+h split h - + # split in vertical orientation bindsym $mod+v split v - + # enter fullscreen mode for the focused container bindsym $mod+f fullscreen toggle - + # change container layout (stacked, tabbed, toggle split) bindsym $mod+s layout stacking bindsym $mod+w layout tabbed bindsym $mod+e layout toggle split - + # toggle tiling / floating bindsym $mod+Shift+space floating toggle - + # change focus between tiling / floating windows bindsym $mod+space focus mode_toggle - + # focus the parent container bindsym $mod+a focus parent - + # focus the child container #bindsym $mod+d focus child - + # Define names for default workspaces for which we configure key bindings later on. # We use variables to avoid repeating the names in multiple places. set $ws1 "1" @@ -100,7 +101,7 @@ let set $ws8 "8" set $ws9 "9" set $ws10 "10" - + # switch to workspace bindsym $mod+1 workspace $ws1 bindsym $mod+2 workspace $ws2 @@ -112,7 +113,7 @@ let bindsym $mod+8 workspace $ws8 bindsym $mod+9 workspace $ws9 bindsym $mod+0 workspace $ws10 - + # move focused container to workspace bindsym $mod+Shift+1 move container to workspace $ws1 bindsym $mod+Shift+2 move container to workspace $ws2 @@ -124,18 +125,18 @@ let bindsym $mod+Shift+8 move container to workspace $ws8 bindsym $mod+Shift+9 move container to workspace $ws9 bindsym $mod+Shift+0 move container to workspace $ws10 - + # reload the configuration file bindsym $mod+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart # exit i3 (logs you out of your X session) bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" - + # resize window (you can also use the mouse for that) mode "resize" { # These bindings trigger as soon as you enter the resize mode - + # Pressing left will shrink the window’s width. # Pressing right will grow the window’s width. # Pressing up will shrink the window’s height. @@ -144,27 +145,27 @@ let bindsym k resize grow height 10 px or 10 ppt bindsym l resize shrink height 10 px or 10 ppt bindsym semicolon resize grow width 10 px or 10 ppt - + # same bindings, but for the arrow keys bindsym Left resize shrink width 10 px or 10 ppt bindsym Down resize grow height 10 px or 10 ppt bindsym Up resize shrink height 10 px or 10 ppt bindsym Right resize grow width 10 px or 10 ppt - + # back to normal: Enter or Escape or $mod+r bindsym Return mode "default" bindsym Escape mode "default" bindsym $mod+r mode "default" } - + bindsym $mod+r mode "resize" - + # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) bar { status_command i3status } - ''; + ''; in { -- cgit v1.3.1 From aba86847ca9096d3e94759fae36108851150c51b Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 11 Dec 2019 23:48:13 +0100 Subject: j eamcs: Fix org-capture wrong-argument bug --- jeschli/2configs/emacs-org-agenda.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeschli/2configs/emacs-org-agenda.nix b/jeschli/2configs/emacs-org-agenda.nix index f9139fc..9167889 100644 --- a/jeschli/2configs/emacs-org-agenda.nix +++ b/jeschli/2configs/emacs-org-agenda.nix @@ -144,7 +144,7 @@ let (interactive) (save-excursion (beginning-of-line 0) - (org-remove-empty-drawer-at "LOGBOOK" (point)))) + (org-remove-empty-drawer-at (point)))) (add-hook 'org-clock-out-hook 'bh/remove-empty-drawer-on-clock-out 'append) -- cgit v1.3.1 From 8428620fc37a9e56965890e7953aebd209d51a43 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Thu, 12 Dec 2019 10:55:55 +0100 Subject: j emacs: Update refile file --- jeschli/2configs/emacs-org-agenda.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/jeschli/2configs/emacs-org-agenda.nix b/jeschli/2configs/emacs-org-agenda.nix index 9167889..0420dc4 100644 --- a/jeschli/2configs/emacs-org-agenda.nix +++ b/jeschli/2configs/emacs-org-agenda.nix @@ -114,29 +114,29 @@ let ("NEXT" ("WAITING") ("CANCELLED") ("HOLD")) ("DONE" ("WAITING") ("CANCELLED") ("HOLD"))))) -(setq org-directory "~/projects/notes_private") -(setq org-default-notes-file "~/projects/notes_private/refile.org") +(setq org-directory "~/projects/notes_privat") +(setq org-default-notes-file "~/projects/notes_privat/refile.org") ;; I use C-c c to start capture mode (global-set-key (kbd "C-c c") 'org-capture) ;; Capture templates for: TODO tasks, Notes, appointments, phone calls, meetings, and org-protocol (setq org-capture-templates - (quote (("t" "todo" entry (file "~/git/org/refile.org") + (quote (("t" "todo" entry (file org-default-notes-file) "* TODO %?\n%U\n%a\n" :clock-in t :clock-resume t) - ("r" "respond" entry (file "~/git/org/refile.org") + ("r" "respond" entry (file org-default-notes-file) "* NEXT Respond to %:from on %:subject\nSCHEDULED: %t\n%U\n%a\n" :clock-in t :clock-resume t :immediate-finish t) - ("n" "note" entry (file "~/git/org/refile.org") + ("n" "note" entry (file org-default-notes-file) "* %? :NOTE:\n%U\n%a\n" :clock-in t :clock-resume t) ("j" "Journal" entry (file+datetree "~/git/org/diary.org") "* %?\n%U\n" :clock-in t :clock-resume t) - ("w" "org-protocol" entry (file "~/git/org/refile.org") + ("w" "org-protocol" entry (file org-default-notes-file) "* TODO Review %c\n%U\n" :immediate-finish t) - ("m" "Meeting" entry (file "~/git/org/refile.org") + ("m" "Meeting" entry (file org-default-notes-file) "* MEETING with %? :MEETING:\n%U" :clock-in t :clock-resume t) - ("p" "Phone call" entry (file "~/git/org/refile.org") + ("p" "Phone call" entry (file org-default-notes-file) "* PHONE %? :PHONE:\n%U" :clock-in t :clock-resume t) - ("h" "Habit" entry (file "~/git/org/refile.org") + ("h" "Habit" entry (file org-default-notes-file) "* NEXT %?\n%U\n%a\nSCHEDULED: %(format-time-string \"%<<%Y-%m-%d %a .+1d/3d>>\")\n:PROPERTIES:\n:STYLE: habit\n:REPEAT_TO_STATE: NEXT\n:END:\n")))) ;; Remove empty LOGBOOK drawers on clock out -- cgit v1.3.1 From acd683c0a90937dc11ae9877f1a9233e02d9861e Mon Sep 17 00:00:00 2001 From: Jeschli Date: Fri, 20 Dec 2019 08:56:06 +0100 Subject: j reagenzglas: add audio --- jeschli/1systems/reagenzglas/config.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index f8c7d34..a3bc7b5 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -54,13 +54,16 @@ }; users.users.jeschli = { - isNormalUser = true; + isNormalUser = true; + extraGroups = [ "audio" ]; }; # services.xserver.synaptics.enable = true; services.xserver.libinput.enable = true; services.xserver.libinput.disableWhileTyping = true; + hardware.pulseaudio.enable = true; + #Enable ssh daemon services.openssh.enable = true; -- cgit v1.3.1 From 6b638416b6a9418f9e8d4fd37f5a5771f004c3c4 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 11 Feb 2020 17:50:51 +0100 Subject: j configs: add elisp for emacs config as submodule --- jeschli/2configs/elisp | 1 + 1 file changed, 1 insertion(+) create mode 160000 jeschli/2configs/elisp diff --git a/jeschli/2configs/elisp b/jeschli/2configs/elisp new file mode 160000 index 0000000..a2cb18b --- /dev/null +++ b/jeschli/2configs/elisp @@ -0,0 +1 @@ +Subproject commit a2cb18b59ed0c5707e3fd87b5fd6a20a0074b73c -- cgit v1.3.1 From 406ac24925dc38c728e4812930fcff613399ec94 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 11 Feb 2020 17:52:46 +0100 Subject: j emacs as exwm; add chrome --- jeschli/1systems/reagenzglas/config.nix | 11 +++++++++-- jeschli/2configs/emacs.nix | 34 +++++++++++++++++++++++++++------ 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index a3bc7b5..91c2ed5 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -9,8 +9,8 @@ - ./desktop.nix - ./i3-configuration.nix +# ./desktop.nix +# ./i3-configuration.nix ./hardware-configuration.nix ]; @@ -39,6 +39,8 @@ environment.systemPackages = with pkgs; [ ag alacritty + google-chrome + chromium copyq direnv go @@ -67,6 +69,11 @@ #Enable ssh daemon services.openssh.enable = true; + #Enable clight + services.clight.enable = true; + services.geoclue2.enable = true; + location.provider = "geoclue2"; + users.users.root.openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDM1xtX/SF2IzfAIzrXvH4HsW05eTBX8U8MYlEPadq0DS/nHC45hW2PSEUOVsH0UhBRAB+yClVLyN+JAYsuOoQacQqAVq9R7HAoFITdYTMJCxVs4urSRv0pWwTopRIh1rlI+Q0QfdMoeVtO2ZKG3KoRM+APDy2dsX8LTtWjXmh/ZCtpGl1O8TZtz2ZyXyv9OVDPnQiFwPU3Jqs2Z036c+kwxWlxYc55FRuqwRtQ48c/ilPMu+ZvQ22j1Ch8lNuliyAg1b8pZdOkMJF3R8b46IQ8FEqkr3L1YQygYw2M50B629FPgHgeGPMz3mVd+5lzP+okbhPJjMrUqZAUwbMGwGzZ ombi@nixos" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKFXgtbgeivxlMKkoEJ4ANhtR+LRMSPrsmL4U5grFUME jeschli@nixos" diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index 0a81048..cffa1c7 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -9,7 +9,7 @@ let ]; }; - orgAgendaView = import ./emacs-org-agenda.nix; +# orgAgendaView = import ./emacs-org-agenda.nix; packageRepos = '' (require 'package) ;; You might already have this line @@ -179,7 +179,6 @@ let ${theme} ${windowCosmetics} - ${orgAgendaView} ${myFunctionKeys} ${lspMode} ''; @@ -202,9 +201,14 @@ let epkgs.melpaPackages.academic-phrases epkgs.melpaPackages.gitlab - epkgs.melpaPackages.helm epkgs.melpaPackages.weechat +# helm + epkgs.melpaPackages.helm + epkgs.melpaPackages.helm-fuzzier + epkgs.melpaPackages.helm-ag + + # emacs convenience epkgs.melpaPackages.ag epkgs.melpaPackages.company @@ -235,12 +239,15 @@ let epkgs.melpaPackages.org-mime epkgs.melpaPackages.orgit - epkgs.elpaPackages.which-key + + epkgs.exwm + epkgs.melpaPackages.desktop-environment + epkgs.melpaPackages.helm-exwm ]; emacsWithOverlay = pkgsWithOverlay.emacsWithPackagesFromUsePackage { - config = builtins.readFile dotEmacs; # builtins.readFile ./emacs.el; + config = builtins.readFile ./elisp/init.el; # Package is optional, defaults to pkgs.emacs package = pkgsWithOverlay.emacsGit; # Optionally provide extra packages not in the configuration file @@ -260,6 +267,21 @@ let ''; in { environment.systemPackages = [ - myEmacs myEmacsWithDaemon myEmacsClient + myEmacs myEmacsWithDaemon myEmacsClient emacsWithOverlay ]; + + services.xserver = { + enable = true; + xkbOptions = "caps:super"; + exportConfiguration = true; + + displayManager.slim.enable = true; + windowManager.default = "exwm"; + + # Set up the login session + windowManager.session = [{ + name = "exwm"; + start = "${emacsWithOverlay}/bin/emacs -q -l " + builtins.toString ./elisp/init.el; + }]; + }; } -- cgit v1.3.1 From 4e5c8f85f5c79c41b186d53cfa7831dd7e0e483c Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 18 Feb 2020 21:10:19 +0100 Subject: j: root@baeckerei add success to reagenzglas --- jeschli/1systems/reagenzglas/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index 91c2ed5..43d9ebf 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -77,6 +77,7 @@ users.users.root.openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDM1xtX/SF2IzfAIzrXvH4HsW05eTBX8U8MYlEPadq0DS/nHC45hW2PSEUOVsH0UhBRAB+yClVLyN+JAYsuOoQacQqAVq9R7HAoFITdYTMJCxVs4urSRv0pWwTopRIh1rlI+Q0QfdMoeVtO2ZKG3KoRM+APDy2dsX8LTtWjXmh/ZCtpGl1O8TZtz2ZyXyv9OVDPnQiFwPU3Jqs2Z036c+kwxWlxYc55FRuqwRtQ48c/ilPMu+ZvQ22j1Ch8lNuliyAg1b8pZdOkMJF3R8b46IQ8FEqkr3L1YQygYw2M50B629FPgHgeGPMz3mVd+5lzP+okbhPJjMrUqZAUwbMGwGzZ ombi@nixos" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKFXgtbgeivxlMKkoEJ4ANhtR+LRMSPrsmL4U5grFUME jeschli@nixos" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG7C3bgoL9VeVl8pgu8sp3PCOs6TXk4R9y7JKJAHGsfm root@baeckerei" ]; # This value determines the NixOS release with which your system is to be -- cgit v1.3.1 From 1a00b18f2bc0900fc74f0bce58b9ec25c0632baa Mon Sep 17 00:00:00 2001 From: Jeschli Date: Mon, 30 Mar 2020 08:18:10 +0200 Subject: j emacs: org beautification --- jeschli/2configs/emacs.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index cffa1c7..fb087a9 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -232,7 +232,11 @@ let # python epkgs.melpaPackages.elpy -# org-mode + # org-mode + epkgs.melpaPackages.org-super-agenda + epkgs.melpaPackages.org-bullets + epkgs.melpaPackages.org-ql + epkgs.elpaPackages.bbdb epkgs.orgPackages.org-plus-contrib epkgs.melpaPackages.smex -- cgit v1.3.1 From 8e438b686384a3aa1ea0d7fbccdc3c9032c171e6 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Mon, 30 Mar 2020 08:18:46 +0200 Subject: j emacs: disable exwm --- jeschli/2configs/emacs.nix | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index fb087a9..797a397 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -274,18 +274,19 @@ in { myEmacs myEmacsWithDaemon myEmacsClient emacsWithOverlay ]; - services.xserver = { - enable = true; - xkbOptions = "caps:super"; - exportConfiguration = true; - - displayManager.slim.enable = true; - windowManager.default = "exwm"; - - # Set up the login session - windowManager.session = [{ - name = "exwm"; - start = "${emacsWithOverlay}/bin/emacs -q -l " + builtins.toString ./elisp/init.el; - }]; - }; +## EXWM Config +# services.xserver = { +# enable = true; +# xkbOptions = "caps:super"; +# exportConfiguration = true; +# +# displayManager.slim.enable = true; +# windowManager.default = "exwm"; +# +# # Set up the login session +# windowManager.session = [{ +# name = "exwm"; +# start = "${emacsWithOverlay}/bin/emacs -q -l " + builtins.toString ./elisp/init.el; +# }]; +# }; } -- cgit v1.3.1 From a4af264cd6a6c63814c3202b4bb3bd1e8161fd9d Mon Sep 17 00:00:00 2001 From: Jeschli Date: Mon, 30 Mar 2020 08:19:16 +0200 Subject: j reagenzglas: reenable i3 --- jeschli/1systems/reagenzglas/config.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index 43d9ebf..d019bb3 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -9,8 +9,8 @@ -# ./desktop.nix -# ./i3-configuration.nix + ./desktop.nix + ./i3-configuration.nix ./hardware-configuration.nix ]; -- cgit v1.3.1 From 3577bea0fcc38ddd132251cefcd118ff6cd6cd5d Mon Sep 17 00:00:00 2001 From: Jeschli Date: Mon, 30 Mar 2020 08:19:46 +0200 Subject: j emacs: set to latest init.el --- jeschli/2configs/elisp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeschli/2configs/elisp b/jeschli/2configs/elisp index a2cb18b..d93aa29 160000 --- a/jeschli/2configs/elisp +++ b/jeschli/2configs/elisp @@ -1 +1 @@ -Subproject commit a2cb18b59ed0c5707e3fd87b5fd6a20a0074b73c +Subproject commit d93aa293a63e02e25cfeb5fcc2b16e0ffe6776fe -- cgit v1.3.1 From 5dbb73d30e7120648e4f6b17a2112aa7b2116577 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 14 Apr 2020 20:31:02 +0200 Subject: j emacs: update elisp submodule --- jeschli/2configs/elisp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeschli/2configs/elisp b/jeschli/2configs/elisp index d93aa29..ae1a03d 160000 --- a/jeschli/2configs/elisp +++ b/jeschli/2configs/elisp @@ -1 +1 @@ -Subproject commit d93aa293a63e02e25cfeb5fcc2b16e0ffe6776fe +Subproject commit ae1a03ddee80d73ac166af75cdb1d93d24fa44b9 -- cgit v1.3.1 From 65769bfbbe28003d96f1532256f0aadc4e3ad6c6 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 14 Apr 2020 20:42:06 +0200 Subject: j emacs: remove dead code --- jeschli/2configs/emacs.nix | 178 +-------------------------------------------- 1 file changed, 2 insertions(+), 176 deletions(-) diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index 7400663..5bdd6d5 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -9,180 +9,6 @@ let ]; }; -# orgAgendaView = import ./emacs-org-agenda.nix; - - packageRepos = '' - (require 'package) ;; You might already have this line - (let* ((no-ssl (and (memq system-type '(windows-nt ms-dos)) - (not (gnutls-available-p)))) - (url (concat (if no-ssl "http" "https") "://melpa.org/packages/"))) - (add-to-list 'package-archives (cons "melpa" url) t) - (add-to-list 'package-archives - '("org" . "http://orgmode.org/elpa/") t) - ) - (when (< emacs-major-version 24) - ;; For important compatibility libraries like cl-lib - (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/"))) - (package-initialize) - ''; - - evilMode = '' - ;; Evil Mode - (require 'evil) - (evil-mode 1) - ;; (require 'evil-org) - ;; (add-hook 'org-mode-hook 'evil-org-mode) - ;; (evil-org-set-key-theme '(navigation insert textobjects additional calendar)) - ;; (require 'evil-org-agenda) - ;; (evil-org-agenda-set-keys) - ''; - - goMode = '' - (setq godoc-and-godef-command "go doc") ;godoc has no cli support any more, thats go doc now - (add-to-list 'exec-path "~/go/bin") - (add-hook 'go-mode-hook - (lambda () - (setq-default) - (setq tab-width 2) - (setq standard-indent 2) - (setq indent-tabs-mode nil))) - ''; - - ido = '' - (require 'ido) - (ido-mode t) - ''; - - helm = '' - (helm-mode 1) - (global-set-key (kbd "M-x") #'helm-M-x) - (global-set-key (kbd "C-x r b") #'helm-filtered-bookmarks) - (global-set-key (kbd "C-x C-f") #'helm-find-files) - ''; - - magit = '' - (global-set-key (kbd "C-x g") 'magit-status) ; "Most Magit commands are commonly invoked from the status buffer" - ''; - - windowCosmetics = '' - (menu-bar-mode -1) - (tool-bar-mode -1) ; Disable the button bar atop screen - (scroll-bar-mode -1) ; Disable scroll bar - (toggle-scroll-bar -1) - (setq inhibit-startup-screen t) ; Disable startup screen with graphics - (setq-default indent-tabs-mode nil) ; Use spaces instead of tabs - (setq default-tab-width 2) ; Two spaces is a tab - (setq tab-width 2) ; Four spaces is a tab - (setq visible-bell nil) ; Disable annoying visual bell graphic - (setq ring-bell-function 'ignore) ; Disable super annoying audio bell - ''; - - orgMode = '' - (add-to-list 'auto-mode-alist '("\\.\\(org\\|org_archive\\|txt\\)$" . org-mode)) - (global-set-key "\C-cl" 'org-store-link) - (global-set-key "\C-ca" 'org-agenda) - (global-set-key "\C-cb" 'org-iswitchb) - (global-set-key "\C-c L" 'org-insert-link-global) - (global-set-key "\C-c o" 'org-open-at-point-global) - (setq org-link-frame-setup '((file . find-file))) ; open link in same frame. - (if (boundp 'org-user-agenda-files) - (setq org-agenda-files org-user-agenda-files) - (setq org-agenda-files (quote ("~/projects/notes_privat"))) - ) - ''; - - theme = '' - (load-theme 'monokai-alt t) - (load-theme 'whiteboard t) - (disable-theme 'monokai-alt) - (disable-theme 'whiteboard) - - (defun mh/load-whiteboard-theme () - "load whiteboard theme" - (interactive) - (message "whiteboard loaded") - (disable-theme 'monokai-alt) - (enable-theme 'whiteboard) - ) - - (defun mh/load-monokai-theme () - "load monokai theme" - (interactive) - (message "monokai loaded") - (disable-theme 'whiteboard) - (enable-theme 'monokai-alt) - ) - - (global-set-key "\C-ctw" 'mh/load-whiteboard-theme) - (global-set-key "\C-ctm" 'mh/load-monokai-theme) - ''; - - # Configuration for rust development - # inspired by - # https://github.com/bbatsov/prelude/blob/master/modules/prelude-rust.el - # - # This requires rls and racer to be installed on the system - rustDevelopment = '' - (setq racer-rust-src-path nil) ;; read from shell-nix - (setq racer-cmd "racer") ;; read from shell-nix - (add-hook 'rust-mode-hook #'racer-mode) - (add-hook 'rust-mode-hook (lambda() - (local-set-key (kbd "C-c C-d") 'racer-describe) - (local-set-key (kbd "C-c .") 'racer-find-definition) - (local-set-key (kbd "C-c ,") 'pop-tag-mark)) - ) - (add-hook 'racer-mode-hook #'eldoc-mode) - (add-hook 'racer-mode-hook #'company-mode) - (require 'rust-mode) - (define-key rust-mode-map (kbd "TAB") #'company-indent-or-complete-common) - (setq company-tooltip-align-annotations t) - ''; - - recentFiles = '' - (recentf-mode 1) - (setq recentf-max-menu-items 25) - (global-set-key "\C-x\ \C-r" 'recentf-open-files) - ''; - - myFunctionKeys = '' - (fset 'kill-actual-buffer - [?\C-x ?k return]) - - (defun mh/open-term-and-rename (name) - "open a new bash and rename it" - (interactive "sName of new terminal: ") - (term "/run/current-system/sw/bin/bash") - (rename-buffer name) - ) - (global-set-key (kbd "M-") 'kill-actual-buffer) - - (global-set-key (kbd "") 'mh/open-term-and-rename) - (global-set-key (kbd "") 'other-window) - (global-set-key (kbd "") 'split-window-right) - (global-set-key (kbd "") 'delete-other-windows) - ''; - - lspMode = '' - (require 'lsp-mode) - (add-hook 'rust-mode-hook #'lsp) - ''; - - dotEmacs = pkgs.writeText "dot-emacs" '' - ${packageRepos} - - ${evilMode} - ${goMode} - ${helm} - ${magit} - ${orgMode} - ${rustDevelopment} - ${theme} - ${windowCosmetics} - - ${myFunctionKeys} - ${lspMode} - ''; - #emacsWithCustomPackages emacsPkgs= epkgs: [ # testing lsp mode @@ -259,11 +85,11 @@ let }; myEmacs = pkgs.writeDashBin "my-emacs" '' - exec ${emacsWithOverlay}/bin/emacs -q -l ${dotEmacs} "$@" + exec ${emacsWithOverlay}/bin/emacs -q "$@" ''; myEmacsWithDaemon = pkgs.writeDashBin "my-emacs-daemon" '' - exec ${emacsWithOverlay}/bin/emacs -q -l ${dotEmacs} --daemon + exec ${emacsWithOverlay}/bin/emacs -q --daemon ''; myEmacsClient = pkgs.writeDashBin "meclient" '' -- cgit v1.3.1 From 9d72468c8b41109aacd817afca8652a3620c3d7a Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 14 Apr 2020 20:42:37 +0200 Subject: j emacs: let emacsclient accept files from terminal --- jeschli/2configs/emacs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index 5bdd6d5..c57a06f 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -93,7 +93,7 @@ let ''; myEmacsClient = pkgs.writeDashBin "meclient" '' - exec ${emacsWithOverlay}/bin/emacsclient --create-frame + exec ${emacsWithOverlay}/bin/emacsclient --create-frame "$@" ''; in { environment.systemPackages = [ -- cgit v1.3.1 From 938749727ebf062202053f078204e81d1f407a13 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 14 Apr 2020 20:43:33 +0200 Subject: j emacs: cleanup and add documentation of used emacs pkgs --- jeschli/2configs/emacs.nix | 127 ++++++++++++++++++++++----------------------- 1 file changed, 62 insertions(+), 65 deletions(-) diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index c57a06f..caece8c 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -9,72 +9,69 @@ let ]; }; - #emacsWithCustomPackages - emacsPkgs= epkgs: [ - # testing lsp mode - epkgs.melpaPackages.lsp-ui - epkgs.melpaPackages.company-lsp - epkgs.melpaPackages.lsp-treemacs - epkgs.melpaPackages.helm-lsp - epkgs.melpaPackages.dap-mode - epkgs.melpaPackages.lsp-mode - + # The emacs packages that I use + # I differ between + # - stable (Packages that I use for some time - happy with it) + # - unstable (Packages that I use for some time - but may drop) + # - testing (Packages that I try out - the new stuff) + emacsPkgs = epkgs: + (with epkgs.melpaPackages ; + + ## helm (stable) + # emacs completion engine + [ helm helm-ag ] ++ + + ## deft (testing) + # text search for a directory + [ deft ] ++ + + ## lsp mode (unstable) + # Language Server Protocol mode + # Used for rust + [ company-lsp dap-mode helm-lsp lsp-mode lsp-treemacs lsp-ui ] ++ + + ## emacs convenience (stable) + # Mixed and general purpose + [ ag company direnv evil google-this spacemacs-theme ] ++ + + ## common lisp (testing) + [ slime ] ++ + + ## magit (stable) + [ magit ] ++ + + ## bunch of programming languages (unstable) + [ go-mode haskell-mode nix-mode ] ++ + + ## rust (unstable) + [ racer rust-mode ] ++ + + ## python (stable) + # Python IDE for emacs + [ elpy ]) ++ + + ## org-mode + # Org-Mode has several extensions + # and can be seen as an application of its own. + (with epkgs.melpaPackages ; # testing - epkgs.melpaPackages.web-mode - epkgs.melpaPackages.js2-mode - epkgs.melpaPackages.xref-js2 - - epkgs.melpaPackages.academic-phrases - - epkgs.melpaPackages.gitlab - epkgs.melpaPackages.weechat - -# helm - epkgs.melpaPackages.helm - epkgs.melpaPackages.helm-fuzzier - epkgs.melpaPackages.helm-ag - - -# emacs convenience - epkgs.melpaPackages.ag - epkgs.melpaPackages.company - epkgs.melpaPackages.direnv - epkgs.melpaPackages.evil - epkgs.melpaPackages.google-this - epkgs.melpaPackages.monokai-alt-theme - epkgs.melpaPackages.spacemacs-theme - epkgs.melpaPackages.zenburn-theme - -# development - epkgs.melpaPackages.magit - epkgs.melpaPackages.nix-mode - epkgs.melpaPackages.go-mode - epkgs.melpaPackages.haskell-mode -# rust - epkgs.melpaPackages.rust-mode -# epkgs.melpaPackages.flycheck-rust - epkgs.melpaPackages.racer - -# python - epkgs.melpaPackages.elpy - - # org-mode - epkgs.melpaPackages.org-super-agenda - epkgs.melpaPackages.org-bullets - epkgs.melpaPackages.org-ql - - epkgs.elpaPackages.bbdb - epkgs.orgPackages.org-plus-contrib - epkgs.melpaPackages.smex - epkgs.melpaPackages.org-mime - epkgs.melpaPackages.orgit - - epkgs.elpaPackages.which-key - - epkgs.exwm - epkgs.melpaPackages.desktop-environment - epkgs.melpaPackages.helm-exwm - ]; + [ org-super-agenda org-bullets org-ql ] ++ + # unstable + [ smex org-mime orgit ] + ) ++ + + # stable + (with epkgs.orgPackages ; + [ org-plus-contrib ]) ++ + + (with epkgs.elpaPackages ; + [ bbdb which-key ]); + +# ## EXWM related (unstable) +# epkgs.exwm +# epkgs.melpaPackages.desktop-environment +# epkgs.melpaPackages.helm-exwm +# ]; emacsWithOverlay = pkgsWithOverlay.emacsWithPackagesFromUsePackage { config = builtins.readFile ./elisp/init.el; -- cgit v1.3.1 From 79b0711a5c78c379e852c3c5d90931f440bc5813 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 14 Apr 2020 20:44:36 +0200 Subject: j reagenzglas: add steam --- jeschli/1systems/reagenzglas/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index d019bb3..e42eb95 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -8,6 +8,7 @@ + ./desktop.nix ./i3-configuration.nix -- cgit v1.3.1 From 35972758df55ca12ad77c33261b741d6faf921a1 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 14 Apr 2020 20:45:12 +0200 Subject: j reagenzglas: add gitAndTools.hub --- jeschli/1systems/reagenzglas/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index e42eb95..86c33f7 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -46,6 +46,7 @@ direnv go git + gitAndTools.hub rofi vim wget -- cgit v1.3.1 From 17630336d47adc801ab38bf7184d5ad04bdb5306 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 14 Apr 2020 20:45:49 +0200 Subject: j reagenzglas: add steel bank common lisp (sbcl) --- jeschli/1systems/reagenzglas/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index 86c33f7..b3b3355 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -47,6 +47,7 @@ go git gitAndTools.hub + sbcl rofi vim wget -- cgit v1.3.1 From e03a28a8a21313e2082bafc91da0e0a5066a4104 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 14 Apr 2020 20:46:47 +0200 Subject: j reagenzglas: touchpad dis/enable by F1/F2. --- jeschli/1systems/reagenzglas/i3-configuration.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/jeschli/1systems/reagenzglas/i3-configuration.nix b/jeschli/1systems/reagenzglas/i3-configuration.nix index 576553e..88f6342 100644 --- a/jeschli/1systems/reagenzglas/i3-configuration.nix +++ b/jeschli/1systems/reagenzglas/i3-configuration.nix @@ -34,6 +34,9 @@ let bindsym $mod+x exec ${pkgs.rofi}/bin/rofi -modi window -show window -auto-select + bindsym $mod+F1 exec xinput --list | grep Touchpad | sed 's/.*id=\([0-9][0-9]\).*/\1/' | xargs xinput disable + bindsym $mod+F2 exec xinput --list | grep Touchpad | sed 's/.*id=\([0-9][0-9]\).*/\1/' | xargs xinput enable + # There also is the (new) i3-dmenu-desktop which only displays applications # shipping a .desktop file. It is a wrapper around dmenu, so you need that # installed. -- cgit v1.3.1 From e613c199203b9f90cc7e4f97c7b1825abb02aa56 Mon Sep 17 00:00:00 2001 From: lassulus Date: Sat, 18 Apr 2020 18:48:54 +0200 Subject: lib: add stripAttr --- lib/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/default.nix b/lib/default.nix index 14e6e27..5a948bb 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -49,6 +49,8 @@ let indent = replaceChars ["\n"] ["\n "]; + stripAttr = converge (filterAttrsRecursive (n: v: v != {} && v != null)); + mapNixDir = f: x: { list = foldl' mergeAttrs {} (map (mapNixDir1 f) x); path = mapNixDir1 f x; -- cgit v1.3.1 From 48a08d4616a133dedf29ef538d5f950f81b17314 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 21 Apr 2020 19:52:57 +0200 Subject: j reagenzglas: slim -> lightdm --- jeschli/1systems/reagenzglas/desktop.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jeschli/1systems/reagenzglas/desktop.nix b/jeschli/1systems/reagenzglas/desktop.nix index 0c42981..88eae08 100644 --- a/jeschli/1systems/reagenzglas/desktop.nix +++ b/jeschli/1systems/reagenzglas/desktop.nix @@ -7,8 +7,8 @@ enable = true; xkbOptions = "caps:super"; exportConfiguration = true; - - displayManager.slim.enable = true; + + displayManager.lightdm.enable = true; }; # Configure fonts -- cgit v1.3.1 From 2bcae5e215554c42ddf965ca806ae159aee1ac3d Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 21 Apr 2020 19:54:45 +0200 Subject: j emacs: add window-purpose --- jeschli/2configs/emacs.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index caece8c..cb1bef9 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -17,6 +17,9 @@ let emacsPkgs = epkgs: (with epkgs.melpaPackages ; + ## windows-purpose (testing) + [ window-purpose ] ++ + ## helm (stable) # emacs completion engine [ helm helm-ag ] ++ -- cgit v1.3.1 From 35f0746aa15b5400bf8a4695caee5c582e63c1ab Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 21 Apr 2020 19:56:00 +0200 Subject: j emacs: stable for bbdb which-key --- jeschli/2configs/emacs.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index cb1bef9..73a2320 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -67,6 +67,7 @@ let (with epkgs.orgPackages ; [ org-plus-contrib ]) ++ + # stable (with epkgs.elpaPackages ; [ bbdb which-key ]); -- cgit v1.3.1 From b644dbcfd3a45f77f799068c474af34db5a89adb Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 21 Apr 2020 19:58:14 +0200 Subject: j emacs: use ./elisp/init.el --- jeschli/2configs/emacs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix index 73a2320..5c35bc2 100644 --- a/jeschli/2configs/emacs.nix +++ b/jeschli/2configs/emacs.nix @@ -90,7 +90,7 @@ let ''; myEmacsWithDaemon = pkgs.writeDashBin "my-emacs-daemon" '' - exec ${emacsWithOverlay}/bin/emacs -q --daemon + exec ${emacsWithOverlay}/bin/emacs -q --daemon -l ${./elisp/init.el} ''; myEmacsClient = pkgs.writeDashBin "meclient" '' -- cgit v1.3.1 From 79ba1f4bb3288ab0ebcd0e595c0a04927bbf2551 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Tue, 21 Apr 2020 20:36:14 +0200 Subject: j haskell: remove stylish-haskell --- jeschli/2configs/haskell.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/jeschli/2configs/haskell.nix b/jeschli/2configs/haskell.nix index 2e00d06..46ae24f 100644 --- a/jeschli/2configs/haskell.nix +++ b/jeschli/2configs/haskell.nix @@ -13,7 +13,6 @@ in haskellPackages.hlint haskellPackages.hoogle haskellPackages.stack - haskellPackages.stylish-haskell (all-hies.selection { selector = p: {inherit (p) ghc864; }; }) ]; } -- cgit v1.3.1 From 49c283cde7faf00139244b8f58dc1e260a65f665 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 21 Apr 2020 20:38:40 +0200 Subject: remove nin --- nin/0tests/dummysecrets/hashedPasswords.nix | 1 - nin/0tests/dummysecrets/ssh.id_ed25519 | 0 nin/1systems/axon/config.nix | 132 ----------- nin/1systems/hiawatha/config.nix | 126 ---------- nin/1systems/onondaga/config.nix | 23 -- nin/2configs/ableton.nix | 20 -- nin/2configs/copyq.nix | 38 --- nin/2configs/default.nix | 173 -------------- nin/2configs/games.nix | 70 ------ nin/2configs/git.nix | 60 ----- nin/2configs/im.nix | 19 -- nin/2configs/retiolum.nix | 28 --- nin/2configs/skype.nix | 27 --- nin/2configs/termite.nix | 22 -- nin/2configs/vim.nix | 355 ---------------------------- nin/2configs/weechat.nix | 21 -- nin/default.nix | 7 - nin/krops.nix | 35 --- 18 files changed, 1157 deletions(-) delete mode 100644 nin/0tests/dummysecrets/hashedPasswords.nix delete mode 100644 nin/0tests/dummysecrets/ssh.id_ed25519 delete mode 100644 nin/1systems/axon/config.nix delete mode 100644 nin/1systems/hiawatha/config.nix delete mode 100644 nin/1systems/onondaga/config.nix delete mode 100644 nin/2configs/ableton.nix delete mode 100644 nin/2configs/copyq.nix delete mode 100644 nin/2configs/default.nix delete mode 100644 nin/2configs/games.nix delete mode 100644 nin/2configs/git.nix delete mode 100644 nin/2configs/im.nix delete mode 100644 nin/2configs/retiolum.nix delete mode 100644 nin/2configs/skype.nix delete mode 100644 nin/2configs/termite.nix delete mode 100644 nin/2configs/vim.nix delete mode 100644 nin/2configs/weechat.nix delete mode 100644 nin/default.nix delete mode 100644 nin/krops.nix diff --git a/nin/0tests/dummysecrets/hashedPasswords.nix b/nin/0tests/dummysecrets/hashedPasswords.nix deleted file mode 100644 index 0967ef4..0000000 --- a/nin/0tests/dummysecrets/hashedPasswords.nix +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/nin/0tests/dummysecrets/ssh.id_ed25519 b/nin/0tests/dummysecrets/ssh.id_ed25519 deleted file mode 100644 index e69de29..0000000 diff --git a/nin/1systems/axon/config.nix b/nin/1systems/axon/config.nix deleted file mode 100644 index 5e81afd..0000000 --- a/nin/1systems/axon/config.nix +++ /dev/null @@ -1,132 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -{ config, lib, pkgs, ... }: - -with lib; - -{ - imports = [ - - - #../2configs/copyq.nix - - - - - - ]; - - krebs.build.host = config.krebs.hosts.axon; - - boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "sd_mod" "sr_mod" "rtsx_pci_sdmmc" ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/pool/root"; - fsType = "ext4"; - }; - - fileSystems."/tmp" = - { device = "tmpfs"; - fsType = "tmpfs"; - }; - - fileSystems."/boot" = - { device = "/dev/sda1"; - fsType = "ext2"; - }; - - boot.initrd.luks.devices.crypted.device = "/dev/sda2"; - boot.initrd.luks.cryptoModules = [ "aes" "sha512" "sha1" "xts" ]; - - swapDevices = [ ]; - - nix.maxJobs = lib.mkDefault 4; - # Use the GRUB 2 boot loader. - boot.loader.grub.enable = true; - boot.loader.grub.version = 2; - # Define on which hard drive you want to install Grub. - boot.loader.grub.device = "/dev/sda"; - - # Enable the OpenSSH daemon. - services.openssh.enable = true; - - # Enable CUPS to print documents. - # services.printing.enable = true; - - # nin config - time.timeZone = "Europe/Berlin"; - services.xserver = { - enable = true; - - displayManager.lightdm.enable = true; - }; - - networking.networkmanager.enable = true; - #networking.wireless.enable = true; - - hardware.pulseaudio = { - enable = true; - systemWide = true; - }; - - hardware.bluetooth.enable = true; - - hardware.opengl.driSupport32Bit = true; - - #nixpkgs.config.steam.java = true; - - environment.systemPackages = with pkgs; [ - atom - chromium - firefox - git - htop - keepassx - lmms - networkmanagerapplet - openvpn - python - ruby - steam - taskwarrior - thunderbird - vim - virtmanager - ]; - - nixpkgs.config = { - - allowUnfree = true; - - }; - - #services.logind.extraConfig = "HandleLidSwitch=ignore"; - - services.xserver.synaptics = { - enable = true; - }; - - services.xserver.displayManager.sessionCommands = '' - ${pkgs.xorg.xhost}/bin/xhost + local: - ''; - - services.xserver.desktopManager.xfce = let - xbindConfig = pkgs.writeText "xbindkeysrc" '' - "${pkgs.pass}/bin/passmenu --type" - Control + p - ''; - in { - enable = true; - extraSessionCommands = '' - ${pkgs.xbindkeys}/bin/xbindkeys -f ${xbindConfig} - ''; - }; - - # The NixOS release to be compatible with for stateful data such as databases. - system.stateVersion = "17.03"; - -} diff --git a/nin/1systems/hiawatha/config.nix b/nin/1systems/hiawatha/config.nix deleted file mode 100644 index a09eed9..0000000 --- a/nin/1systems/hiawatha/config.nix +++ /dev/null @@ -1,126 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -{ config, lib, pkgs, ... }: - -with lib; - -{ - imports = [ - - - #../2configs/copyq.nix - - - - - ]; - - krebs.build.host = config.krebs.hosts.hiawatha; - - boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "sd_mod" "sr_mod" "rtsx_pci_sdmmc" ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/b83f8830-84f3-4282-b10e-015c4b76bd9e"; - fsType = "ext4"; - }; - - fileSystems."/tmp" = - { device = "tmpfs"; - fsType = "tmpfs"; - }; - - fileSystems."/home" = - { device = "/dev/fam/home"; - }; - - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/2f319b08-2560-401d-b53c-2abd28f1a010"; - fsType = "ext2"; - }; - - boot.initrd.luks.devices = [ { name = "luksroot"; device = "/dev/sda2"; } ]; - boot.initrd.luks.cryptoModules = [ "aes" "sha512" "sha1" "xts" ]; - - swapDevices = [ ]; - - nix.maxJobs = lib.mkDefault 4; - # Use the GRUB 2 boot loader. - boot.loader.grub.enable = true; - boot.loader.grub.version = 2; - # Define on which hard drive you want to install Grub. - boot.loader.grub.device = "/dev/sda"; - - # Enable the OpenSSH daemon. - services.openssh.enable = true; - - # Enable CUPS to print documents. - # services.printing.enable = true; - - fileSystems."/home/nin/.local/share/Steam" = { - device = "/dev/fam/steam"; - }; - - # nin config - time.timeZone = "Europe/Berlin"; - services.xserver.enable = true; - - networking.networkmanager.enable = true; - #networking.wireless.enable = true; - - hardware.pulseaudio = { - enable = true; - systemWide = true; - }; - - hardware.bluetooth.enable = true; - - hardware.opengl.driSupport32Bit = true; - - #nixpkgs.config.steam.java = true; - - environment.systemPackages = with pkgs; [ - firefox - git - lmms - networkmanagerapplet - python - steam - thunderbird - vim - virtmanager - ]; - - nixpkgs.config = { - - allowUnfree = true; - - }; - - #services.logind.extraConfig = "HandleLidSwitch=ignore"; - - services.xserver.synaptics = { - enable = true; - }; - - - services.xserver.desktopManager.xfce = let - xbindConfig = pkgs.writeText "xbindkeysrc" '' - "${pkgs.pass}/bin/passmenu --type" - Control + p - ''; - in { - enable = true; - extraSessionCommands = '' - ${pkgs.xbindkeys}/bin/xbindkeys -f ${xbindConfig} - ''; - }; - - # The NixOS release to be compatible with for stateful data such as databases. - system.stateVersion = "17.03"; - -} diff --git a/nin/1systems/onondaga/config.nix b/nin/1systems/onondaga/config.nix deleted file mode 100644 index 3cd0773..0000000 --- a/nin/1systems/onondaga/config.nix +++ /dev/null @@ -1,23 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -{ config, lib, pkgs, ... }: - -{ - imports = [ - - - - - ]; - - krebs.build.host = config.krebs.hosts.onondaga; - - boot.isContainer = true; - networking.useDHCP = false; - - time.timeZone = "Europe/Amsterdam"; - - services.openssh.enable = true; -} diff --git a/nin/2configs/ableton.nix b/nin/2configs/ableton.nix deleted file mode 100644 index 343a908..0000000 --- a/nin/2configs/ableton.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ config, pkgs, ... }: let - mainUser = config.users.extraUsers.nin; -in { - users.users= { - ableton = { - isNormalUser = true; - extraGroups = [ - "audio" - "video" - ]; - packages = [ - pkgs.wine - pkgs.winetricks - ]; - }; - }; - security.sudo.extraConfig = '' - ${mainUser.name} ALL=(ableton) NOPASSWD: ALL - ''; -} diff --git a/nin/2configs/copyq.nix b/nin/2configs/copyq.nix deleted file mode 100644 index 0616c40..0000000 --- a/nin/2configs/copyq.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ config, pkgs, ... }: -with import ; -let - copyqConfig = pkgs.writeDash "copyq-config" '' - ${pkgs.copyq}/bin/copyq config check_clipboard true - ${pkgs.copyq}/bin/copyq config check_selection true - ${pkgs.copyq}/bin/copyq config copy_clipboard true - ${pkgs.copyq}/bin/copyq config copy_selection true - - ${pkgs.copyq}/bin/copyq config activate_closes true - ${pkgs.copyq}/bin/copyq config clipboard_notification_lines 0 - ${pkgs.copyq}/bin/copyq config clipboard_tab clipboard - ${pkgs.copyq}/bin/copyq config disable_tray true - ${pkgs.copyq}/bin/copyq config hide_tabs true - ${pkgs.copyq}/bin/copyq config hide_toolbar true - ${pkgs.copyq}/bin/copyq config item_popup_interval true - ${pkgs.copyq}/bin/copyq config maxitems 1000 - ${pkgs.copyq}/bin/copyq config move true - ${pkgs.copyq}/bin/copyq config text_wrap true - ''; -in { - systemd.user.services.copyq = { - after = [ "graphical.target" ]; - wants = [ "graphical.target" ]; - wantedBy = [ "default.target" ]; - environment = { - DISPLAY = ":0"; - }; - serviceConfig = { - SyslogIdentifier = "copyq"; - ExecStart = "${pkgs.copyq}/bin/copyq"; - ExecStartPost = copyqConfig; - Restart = "always"; - RestartSec = "2s"; - StartLimitBurst = 0; - }; - }; -} diff --git a/nin/2configs/default.nix b/nin/2configs/default.nix deleted file mode 100644 index 250383c..0000000 --- a/nin/2configs/default.nix +++ /dev/null @@ -1,173 +0,0 @@ -{ config, lib, pkgs, ... }: - -with import ; -{ - imports = [ - ../2configs/vim.nix - - - { - users.extraUsers = - mapAttrs (_: h: { hashedPassword = h; }) - (import ); - } - { - users.users = { - root = { - openssh.authorizedKeys.keys = [ - config.krebs.users.nin.pubkey - config.krebs.users.nin_h.pubkey - ]; - }; - nin = { - name = "nin"; - uid = 1337; - home = "/home/nin"; - group = "users"; - createHome = true; - useDefaultShell = true; - extraGroups = [ - "audio" - "fuse" - ]; - openssh.authorizedKeys.keys = [ - config.krebs.users.nin.pubkey - config.krebs.users.nin_h.pubkey - ]; - }; - }; - } - { - environment.variables = { - NIX_PATH = mkForce "secrets=/var/src/stockholm/null:/var/src"; - }; - } - (let ca-bundle = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; in { - environment.variables = { - CURL_CA_BUNDLE = ca-bundle; - GIT_SSL_CAINFO = ca-bundle; - SSL_CERT_FILE = ca-bundle; - }; - }) - ]; - - networking.hostName = config.krebs.build.host.name; - nix.maxJobs = config.krebs.build.host.cores; - - krebs = { - enable = true; - dns.search-domain = "r"; - build = { - user = config.krebs.users.nin; - }; - }; - - nix.useSandbox = true; - - users.mutableUsers = false; - - services.timesyncd.enable = true; - - #why is this on in the first place? - services.nscd.enable = false; - - boot.tmpOnTmpfs = true; - # see tmpfiles.d(5) - systemd.tmpfiles.rules = [ - "d /tmp 1777 root root - -" - ]; - - # multiple-definition-problem when defining environment.variables.EDITOR - environment.extraInit = '' - EDITOR=vim - ''; - - nixpkgs.config.allowUnfree = true; - - environment.shellAliases = { - gs = "git status"; - }; - - environment.systemPackages = with pkgs; [ - #stockholm - git - gnumake - jq - proot - pavucontrol - populate - p7zip - termite - unzip - unrar - hashPassword - ]; - - programs.bash = { - enableCompletion = true; - interactiveShellInit = '' - HISTCONTROL='erasedups:ignorespace' - HISTSIZE=65536 - HISTFILESIZE=$HISTSIZE - - shopt -s checkhash - shopt -s histappend histreedit histverify - shopt -s no_empty_cmd_completion - complete -d cd - ''; - promptInit = '' - if test $UID = 0; then - PS1='\[\033[1;31m\]$PWD\[\033[0m\] ' - elif test $UID = 1337; then - PS1='\[\033[1;32m\]$PWD\[\033[0m\] ' - else - PS1='\[\033[1;33m\]\u@$PWD\[\033[0m\] ' - fi - if test -n "$SSH_CLIENT"; then - PS1='\[\033[35m\]\h'" $PS1" - fi - ''; - }; - - services.openssh = { - enable = true; - hostKeys = [ - # XXX bits here make no science - { bits = 8192; type = "ed25519"; path = "/etc/ssh/ssh_host_ed25519_key"; } - ]; - }; - - services.journald.extraConfig = '' - SystemMaxUse=1G - RuntimeMaxUse=128M - ''; - - krebs.iptables = { - enable = true; - tables = { - nat.PREROUTING.rules = [ - { predicate = "! -i retiolum -p tcp -m tcp --dport 22"; target = "REDIRECT --to-ports 0"; precedence = 100; } - { predicate = "-p tcp -m tcp --dport 45621"; target = "REDIRECT --to-ports 22"; precedence = 99; } - ]; - nat.OUTPUT.rules = [ - { predicate = "-o lo -p tcp -m tcp --dport 45621"; target = "REDIRECT --to-ports 22"; precedence = 100; } - ]; - filter.INPUT.policy = "DROP"; - filter.FORWARD.policy = "DROP"; - filter.INPUT.rules = [ - { predicate = "-m conntrack --ctstate RELATED,ESTABLISHED"; target = "ACCEPT"; precedence = 10001; } - { predicate = "-p icmp"; target = "ACCEPT"; precedence = 10000; } - { predicate = "-p ipv6-icmp"; target = "ACCEPT"; v4 = false; precedence = 10000; } - { predicate = "-i lo"; target = "ACCEPT"; precedence = 9999; } - { predicate = "-p tcp --dport 22"; target = "ACCEPT"; precedence = 9998; } - { predicate = "-p tcp -i retiolum"; target = "REJECT --reject-with tcp-reset"; precedence = -10000; } - { predicate = "-p udp -i retiolum"; target = "REJECT --reject-with icmp-port-unreachable"; v6 = false; precedence = -10000; } - { predicate = "-i retiolum"; target = "REJECT --reject-with icmp-proto-unreachable"; v6 = false; precedence = -10000; } - ]; - }; - }; - - networking.dhcpcd.extraConfig = '' - noipv4ll - ''; -} diff --git a/nin/2configs/games.nix b/nin/2configs/games.nix deleted file mode 100644 index 15e1723..0000000 --- a/nin/2configs/games.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ config, pkgs, ... }: - -let - mainUser = config.users.extraUsers.mainUser; - vdoom = pkgs.writeDash "vdoom" '' - ${pkgs.zandronum}/bin/zandronum \ - -fov 120 \ - "$@" - ''; - doom = pkgs.writeDash "doom" '' - DOOM_DIR=''${DOOM_DIR:-~/doom/} - ${vdoom} \ - -file $DOOM_DIR/lib/brutalv20.pk3 \ - "$@" - ''; - doom1 = pkgs.writeDashBin "doom1" '' - DOOM_DIR=''${DOOM_DIR:-~/doom/} - ${doom} -iwad $DOOM_DIR/wads/stock/doom.wad "$@" - ''; - doom2 = pkgs.writeDashBin "doom2" '' - DOOM_DIR=''${DOOM_DIR:-~/doom/} - ${doom} -iwad $DOOM_DIR/wads/stock/doom2.wad "$@" - ''; - vdoom1 = pkgs.writeDashBin "vdoom1" '' - DOOM_DIR=''${DOOM_DIR:-~/doom/} - ${vdoom} -iwad $DOOM_DIR/wads/stock/doom.wad "$@" - ''; - vdoom2 = pkgs.writeDashBin "vdoom2" '' - DOOM_DIR=''${DOOM_DIR:-~/doom/} - ${vdoom} -iwad $DOOM_DIR/wads/stock/doom2.wad "$@" - ''; - - doomservercfg = pkgs.writeText "doomserver.cfg" '' - skill 7 - #survival true - #sv_maxlives 4 - #sv_norespawn true - #sv_weapondrop true - no_jump true - #sv_noweaponspawn true - sv_sharekeys true - sv_survivalcountdowntime 1 - sv_noteamselect true - sv_updatemaster false - #sv_coop_loseinventory true - #cl_startasspectator false - #lms_spectatorview false - ''; - - vdoomserver = pkgs.writeDashBin "vdoomserver" '' - DOOM_DIR=''${DOOM_DIR:-~/doom/} - - ${pkgs.zandronum}/bin/zandronum-server \ - +exec ${doomservercfg} \ - "$@" - ''; - -in { - environment.systemPackages = with pkgs; [ - dwarf_fortress - doom1 - doom2 - vdoom1 - vdoom2 - vdoomserver - ]; - - hardware.pulseaudio.support32Bit = true; - -} diff --git a/nin/2configs/git.nix b/nin/2configs/git.nix deleted file mode 100644 index aed4a9f..0000000 --- a/nin/2configs/git.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ config, lib, pkgs, ... }: - -with import ; - -let - - out = { - services.nginx.enable = true; - krebs.git = { - enable = true; - cgit = { - settings = { - root-title = "public repositories at ${config.krebs.build.host.name}"; - root-desc = "keep calm and engage"; - }; - }; - repos = mapAttrs (_: s: removeAttrs s ["collaborators"]) repos; - rules = rules; - }; - - krebs.iptables.tables.filter.INPUT.rules = [ - { predicate = "-i retiolum -p tcp --dport 80"; target = "ACCEPT"; } - ]; - }; - - repos = public-repos; - - rules = concatMap make-rules (attrValues repos); - - public-repos = mapAttrs make-public-repo { - stockholm = { - cgit.desc = "take all the computers hostage, they'll love you!"; - }; - }; - - make-public-repo = name: { cgit ? {}, ... }: { - inherit cgit name; - public = true; - }; - - make-rules = - with git // config.krebs.users; - repo: - singleton { - user = [ nin nin_h ]; - repo = [ repo ]; - perm = push "refs/*" [ non-fast-forward create delete merge ]; - } ++ - optional repo.public { - user = attrValues config.krebs.users; - repo = [ repo ]; - perm = fetch; - } ++ - optional (length (repo.collaborators or []) > 0) { - user = repo.collaborators; - repo = [ repo ]; - perm = fetch; - }; - -in out diff --git a/nin/2configs/im.nix b/nin/2configs/im.nix deleted file mode 100644 index b078dbd..0000000 --- a/nin/2configs/im.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ config, lib, pkgs, ... }: -with import ; -{ - environment.systemPackages = with pkgs; [ - (pkgs.writeDashBin "im" '' - export PATH=${makeSearchPath "bin" (with pkgs; [ - tmux - gnugrep - weechat - ])} - ssh chat@onondaga - if tmux list-sessions -F\#S | grep -q '^im''$'; then - exec tmux attach -t im - else - exec tmux new -s im weechat - fi - '') - ]; -} diff --git a/nin/2configs/retiolum.nix b/nin/2configs/retiolum.nix deleted file mode 100644 index 821e3cc..0000000 --- a/nin/2configs/retiolum.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ ... }: - -{ - - krebs.iptables = { - tables = { - filter.INPUT.rules = [ - { predicate = "-i retiolum -p tcp --dport smtp"; target = "ACCEPT"; } - { predicate = "-p tcp --dport tinc"; target = "ACCEPT"; } - { predicate = "-p udp --dport tinc"; target = "ACCEPT"; } - ]; - }; - }; - - krebs.tinc.retiolum = { - enable = true; - connectTo = [ - "prism" - "pigstarter" - "gum" - "flap" - ]; - }; - - nixpkgs.config.packageOverrides = pkgs: { - tinc = pkgs.tinc_pre; - }; -} diff --git a/nin/2configs/skype.nix b/nin/2configs/skype.nix deleted file mode 100644 index 621dfae..0000000 --- a/nin/2configs/skype.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - mainUser = config.users.extraUsers.nin; - inherit (import ) genid; - -in { - users.extraUsers = { - skype = { - name = "skype"; - uid = genid "skype"; - description = "user for running skype"; - home = "/home/skype"; - useDefaultShell = true; - extraGroups = [ "audio" "video" ]; - createHome = true; - }; - }; - - krebs.per-user.skype.packages = [ - pkgs.skype - ]; - - security.sudo.extraConfig = '' - ${mainUser.name} ALL=(skype) NOPASSWD: ALL - ''; -} diff --git a/nin/2configs/termite.nix b/nin/2configs/termite.nix deleted file mode 100644 index 942446b..0000000 --- a/nin/2configs/termite.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ config, pkgs, ... }: - -{ - environment.systemPackages = [ - pkgs.termite - ]; - - krebs.per-user.nin.packages = let - termitecfg = pkgs.writeTextFile { - name = "termite-config"; - destination = "/etc/xdg/termite/config"; - text = '' - [colors] - foreground = #d0d7d0 - background = #000000 - ''; - }; - in [ - termitecfg - ]; - -} diff --git a/nin/2configs/vim.nix b/nin/2configs/vim.nix deleted file mode 100644 index 7b5d376..0000000 --- a/nin/2configs/vim.nix +++ /dev/null @@ -1,355 +0,0 @@ -{ config, lib, pkgs, ... }: - -with import ; -let - out = { - environment.systemPackages = [ - vim - pkgs.pythonPackages.flake8 - ]; - - environment.etc.vimrc.source = vimrc; - - environment.variables.EDITOR = mkForce "vim"; - environment.variables.VIMINIT = ":so /etc/vimrc"; - }; - - vimrc = pkgs.writeText "vimrc" '' - set nocompatible - - set autoindent - set backspace=indent,eol,start - set backup - set backupdir=${dirs.backupdir}/ - set directory=${dirs.swapdir}// - set hlsearch - set incsearch - set laststatus=2 - set mouse=a - set noruler - set pastetoggle= - set runtimepath=${extra-runtimepath},$VIMRUNTIME - set shortmess+=I - set showcmd - set showmatch - set ttimeoutlen=0 - set undodir=${dirs.undodir} - set undofile - set undolevels=1000000 - set undoreload=1000000 - set viminfo='20,<1000,s100,h,n${files.viminfo} - set visualbell - set wildignore+=*.o,*.class,*.hi,*.dyn_hi,*.dyn_o - set wildmenu - set wildmode=longest,full - - set et ts=2 sts=2 sw=2 - - filetype plugin indent on - - set t_Co=256 - colorscheme hack - syntax on - - au Syntax * syn match Garbage containedin=ALL /\s\+$/ - \ | syn match TabStop containedin=ALL /\t\+/ - \ | syn keyword Todo containedin=ALL TODO - - au BufRead,BufNewFile *.hs so ${hs.vim} - - au BufRead,BufNewFile *.nix so ${nix.vim} - - au BufRead,BufNewFile /dev/shm/* set nobackup nowritebackup noswapfile - - "Syntastic config - let g:syntastic_python_checkers=['flake8'] - - nmap q :buffer - nmap :buffer - - cnoremap - - noremap :q - vnoremap < >gv - - nnoremap [5^ :tabp - nnoremap [6^ :tabn - nnoremap [5@ :tabm -1 - nnoremap [6@ :tabm +1 - - nnoremap :tabp - nnoremap :tabn - inoremap :tabp - inoremap :tabn - - " - noremap Oa | noremap! Oa - noremap Ob | noremap! Ob - noremap Oc | noremap! Oc - noremap Od | noremap! Od - " <[C]S-{Up,Down,Right,Left> - noremap [a | noremap! [a - noremap [b | noremap! [b - noremap [c | noremap! [c - noremap [d | noremap! [d - vnoremap u - ''; - - extra-runtimepath = concatMapStringsSep "," (pkg: "${pkg.rtp}") [ - pkgs.vimPlugins.Syntastic - pkgs.vimPlugins.undotree - pkgs.vimPlugins.airline - (pkgs.vimUtils.buildVimPlugin { - name = "file-line-1.0"; - src = pkgs.fetchgit { - url = git://github.com/bogado/file-line; - rev = "refs/tags/1.0"; - sha256 = "0z47zq9rqh06ny0q8lpcdsraf3lyzn9xvb59nywnarf3nxrk6hx0"; - }; - }) - ((rtp: rtp // { inherit rtp; }) (pkgs.writeTextFile (let - name = "hack"; - in { - name = "vim-color-${name}-1.0.2"; - destination = "/colors/${name}.vim"; - text = /* vim */ '' - set background=dark - hi clear - if exists("syntax_on") - syntax clear - endif - - let colors_name = ${toJSON name} - - hi Normal ctermbg=235 - hi Comment ctermfg=242 - hi Constant ctermfg=062 - hi Identifier ctermfg=068 - hi Function ctermfg=041 - hi Statement ctermfg=167 - hi PreProc ctermfg=167 - hi Type ctermfg=041 - hi Delimiter ctermfg=251 - hi Special ctermfg=062 - - hi Garbage ctermbg=088 - hi TabStop ctermbg=016 - hi Todo ctermfg=174 ctermbg=NONE - - hi NixCode ctermfg=148 - hi NixData ctermfg=149 - hi NixQuote ctermfg=150 - - hi diffNewFile ctermfg=207 - hi diffFile ctermfg=207 - hi diffLine ctermfg=207 - hi diffSubname ctermfg=207 - hi diffAdded ctermfg=010 - hi diffRemoved ctermfg=009 - ''; - }))) - ((rtp: rtp // { inherit rtp; }) (pkgs.writeTextFile (let - name = "vim"; - in { - name = "vim-syntax-${name}-1.0.0"; - destination = "/syntax/${name}.vim"; - text = /* vim */ '' - ${concatMapStringsSep "\n" (s: /* vim */ '' - syn keyword vimColor${s} ${s} - \ containedin=ALLBUT,vimComment,vimLineComment - hi vimColor${s} ctermfg=${s} - '') (map (i: lpad 3 "0" (toString i)) (range 0 255))} - ''; - }))) - ((rtp: rtp // { inherit rtp; }) (pkgs.writeTextFile (let - name = "showsyntax"; - in { - name = "vim-plugin-${name}-1.0.0"; - destination = "/plugin/${name}.vim"; - text = /* vim */ '' - if exists('g:loaded_showsyntax') - finish - endif - let g:loaded_showsyntax = 0 - - fu! ShowSyntax() - let id = synID(line("."), col("."), 1) - let name = synIDattr(id, "name") - let transName = synIDattr(synIDtrans(id),"name") - if name != transName - let name .= " (" . transName . ")" - endif - echo "Syntax: " . name - endfu - - command! -n=0 -bar ShowSyntax :call ShowSyntax() - ''; - }))) - ]; - - dirs = { - backupdir = "$HOME/.cache/vim/backup"; - swapdir = "$HOME/.cache/vim/swap"; - undodir = "$HOME/.cache/vim/undo"; - }; - files = { - viminfo = "$HOME/.cache/vim/info"; - }; - - mkdirs = let - dirOf = s: let out = concatStringsSep "/" (init (splitString "/" s)); - in assert out != ""; out; - alldirs = attrValues dirs ++ map dirOf (attrValues files); - in unique (sort lessThan alldirs); - - vim = pkgs.writeDashBin "vim" '' - set -efu - (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs}) - exec ${pkgs.vim}/bin/vim "$@" - ''; - - - hs.vim = pkgs.writeText "hs.vim" '' - syn region String start=+\[[[:alnum:]]*|+ end=+|]+ - - hi link ConId Identifier - hi link VarId Identifier - hi link hsDelimiter Delimiter - ''; - - nix.vim = pkgs.writeText "nix.vim" '' - setf nix - - " Ref - syn match NixID /[a-zA-Z\_][a-zA-Z0-9\_\'\-]*/ - syn match NixINT /\<[0-9]\+\>/ - syn match NixPATH /[a-zA-Z0-9\.\_\-\+]*\(\/[a-zA-Z0-9\.\_\-\+]\+\)\+/ - syn match NixHPATH /\~\(\/[a-zA-Z0-9\.\_\-\+]\+\)\+/ - syn match NixSPATH /<[a-zA-Z0-9\.\_\-\+]\+\(\/[a-zA-Z0-9\.\_\-\+]\+\)*>/ - syn match NixURI /[a-zA-Z][a-zA-Z0-9\+\-\.]*:[a-zA-Z0-9\%\/\?\:\@\&\=\+\$\,\-\_\.\!\~\*\']\+/ - syn region NixSTRING - \ matchgroup=NixSTRING - \ start='"' - \ skip='\\"' - \ end='"' - syn region NixIND_STRING - \ matchgroup=NixIND_STRING - \ start="'''" - \ skip="'''\('\|[$]\|\\[nrt]\)" - \ end="'''" - - syn match NixOther /[():/;=.,?\[\]]/ - - syn match NixCommentMatch /\(^\|\s\)#.*/ - syn region NixCommentRegion start="/\*" end="\*/" - - hi link NixCode Statement - hi link NixData Constant - hi link NixComment Comment - - hi link NixCommentMatch NixComment - hi link NixCommentRegion NixComment - hi link NixID NixCode - hi link NixINT NixData - hi link NixPATH NixData - hi link NixHPATH NixData - hi link NixSPATH NixData - hi link NixURI NixData - hi link NixSTRING NixData - hi link NixIND_STRING NixData - - hi link NixEnter NixCode - hi link NixOther NixCode - hi link NixQuote NixData - - syn cluster nix_has_dollar_curly contains=@nix_ind_strings,@nix_strings - syn cluster nix_ind_strings contains=NixIND_STRING - syn cluster nix_strings contains=NixSTRING - - ${concatStringsSep "\n" (mapAttrsToList (lang: { extraStart ? null }: let - startAlts = filter isString [ - ''/\* ${lang} \*/'' - extraStart - ]; - sigil = ''\(${concatStringsSep ''\|'' startAlts}\)[ \t\r\n]*''; - in /* vim */ '' - syn include @nix_${lang}_syntax syntax/${lang}.vim - unlet b:current_syntax - - syn match nix_${lang}_sigil - \ X${replaceStrings ["X"] ["\\X"] sigil}\ze\('''\|"\)X - \ nextgroup=nix_${lang}_region_IND_STRING,nix_${lang}_region_STRING - \ transparent - - syn region nix_${lang}_region_STRING - \ matchgroup=NixSTRING - \ start='"' - \ skip='\\"' - \ end='"' - \ contained - \ contains=@nix_${lang}_syntax - \ transparent - - syn region nix_${lang}_region_IND_STRING - \ matchgroup=NixIND_STRING - \ start="'''" - \ skip="'''\('\|[$]\|\\[nrt]\)" - \ end="'''" - \ contained - \ contains=@nix_${lang}_syntax - \ transparent - - syn cluster nix_ind_strings - \ add=nix_${lang}_region_IND_STRING - - syn cluster nix_strings - \ add=nix_${lang}_region_STRING - - syn cluster nix_has_dollar_curly - \ add=@nix_${lang}_syntax - '') { - c = {}; - cabal = {}; - haskell = {}; - sh.extraStart = ''write\(Ba\|Da\)sh[^ \t\r\n]*[ \t\r\n]*"[^"]*"''; - vim.extraStart = - ''write[^ \t\r\n]*[ \t\r\n]*"\(\([^"]*\.\)\?vimrc\|[^"]*\.vim\)"''; - })} - - " Clear syntax that interferes with nixINSIDE_DOLLAR_CURLY. - syn clear shVarAssign - - syn region nixINSIDE_DOLLAR_CURLY - \ matchgroup=NixEnter - \ start="[$]{" - \ end="}" - \ contains=TOP - \ containedin=@nix_has_dollar_curly - \ transparent - - syn region nix_inside_curly - \ matchgroup=NixEnter - \ start="{" - \ end="}" - \ contains=TOP - \ containedin=nixINSIDE_DOLLAR_CURLY,nix_inside_curly - \ transparent - - syn match NixQuote /'''\([''$']\|\\.\)/he=s+2 - \ containedin=@nix_ind_strings - \ contained - - syn match NixQuote /\\./he=s+1 - \ containedin=@nix_strings - \ contained - - syn sync fromstart - - let b:current_syntax = "nix" - - set isk=@,48-57,_,192-255,-,' - set bg=dark - ''; -in -out diff --git a/nin/2configs/weechat.nix b/nin/2configs/weechat.nix deleted file mode 100644 index 6c0fb31..0000000 --- a/nin/2configs/weechat.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (import ) genid; -in { - krebs.per-user.chat.packages = with pkgs; [ - mosh - weechat - tmux - ]; - - users.extraUsers.chat = { - home = "/home/chat"; - uid = genid "chat"; - useDefaultShell = true; - createHome = true; - openssh.authorizedKeys.keys = [ - config.krebs.users.nin.pubkey - ]; - }; -} diff --git a/nin/default.nix b/nin/default.nix deleted file mode 100644 index c31d6d9..0000000 --- a/nin/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -_: -{ - imports = [ - ../krebs - ./2configs - ]; -} diff --git a/nin/krops.nix b/nin/krops.nix deleted file mode 100644 index 52aeb84..0000000 --- a/nin/krops.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ name }: let - inherit (import ../krebs/krops.nix { inherit name; }) - krebs-source - lib - pkgs - ; - - source = { test }: lib.evalSource [ - (krebs-source { test = test; }) - { - nixos-config.symlink = "stockholm/nin/1systems/${name}/config.nix"; - secrets = if test then { - file = toString ./0tests/dummysecrets; - } else { - pass = { - dir = "${lib.getEnv "HOME"}/.password-store"; - name = "hosts/${name}"; - }; - }; - } - ]; - -in { - # usage: $(nix-build --no-out-link --argstr name HOSTNAME -A deploy) - deploy = pkgs.krops.writeDeploy "${name}-deploy" { - source = source { test = false; }; - target = "root@${name}/var/src"; - }; - - # usage: $(nix-build --no-out-link --argstr name HOSTNAME --argstr target PATH -A test) - test = { target }: pkgs.krops.writeTest "${name}-test" { - inherit target; - source = source { test = true; }; - }; -} -- cgit v1.3.1 From febd745a80152ae34f7f8dff3017994f85981cf7 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 21 Apr 2020 20:38:40 +0200 Subject: remove nin --- nin/0tests/dummysecrets/hashedPasswords.nix | 1 - nin/0tests/dummysecrets/ssh.id_ed25519 | 0 nin/1systems/axon/config.nix | 132 ----------- nin/1systems/hiawatha/config.nix | 126 ---------- nin/1systems/onondaga/config.nix | 23 -- nin/2configs/ableton.nix | 20 -- nin/2configs/copyq.nix | 38 --- nin/2configs/default.nix | 173 -------------- nin/2configs/games.nix | 70 ------ nin/2configs/git.nix | 60 ----- nin/2configs/im.nix | 19 -- nin/2configs/retiolum.nix | 28 --- nin/2configs/skype.nix | 27 --- nin/2configs/termite.nix | 22 -- nin/2configs/vim.nix | 355 ---------------------------- nin/2configs/weechat.nix | 21 -- nin/default.nix | 7 - nin/krops.nix | 35 --- 18 files changed, 1157 deletions(-) delete mode 100644 nin/0tests/dummysecrets/hashedPasswords.nix delete mode 100644 nin/0tests/dummysecrets/ssh.id_ed25519 delete mode 100644 nin/1systems/axon/config.nix delete mode 100644 nin/1systems/hiawatha/config.nix delete mode 100644 nin/1systems/onondaga/config.nix delete mode 100644 nin/2configs/ableton.nix delete mode 100644 nin/2configs/copyq.nix delete mode 100644 nin/2configs/default.nix delete mode 100644 nin/2configs/games.nix delete mode 100644 nin/2configs/git.nix delete mode 100644 nin/2configs/im.nix delete mode 100644 nin/2configs/retiolum.nix delete mode 100644 nin/2configs/skype.nix delete mode 100644 nin/2configs/termite.nix delete mode 100644 nin/2configs/vim.nix delete mode 100644 nin/2configs/weechat.nix delete mode 100644 nin/default.nix delete mode 100644 nin/krops.nix diff --git a/nin/0tests/dummysecrets/hashedPasswords.nix b/nin/0tests/dummysecrets/hashedPasswords.nix deleted file mode 100644 index 0967ef4..0000000 --- a/nin/0tests/dummysecrets/hashedPasswords.nix +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/nin/0tests/dummysecrets/ssh.id_ed25519 b/nin/0tests/dummysecrets/ssh.id_ed25519 deleted file mode 100644 index e69de29..0000000 diff --git a/nin/1systems/axon/config.nix b/nin/1systems/axon/config.nix deleted file mode 100644 index 5e81afd..0000000 --- a/nin/1systems/axon/config.nix +++ /dev/null @@ -1,132 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -{ config, lib, pkgs, ... }: - -with lib; - -{ - imports = [ - - - #../2configs/copyq.nix - - - - - - ]; - - krebs.build.host = config.krebs.hosts.axon; - - boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "sd_mod" "sr_mod" "rtsx_pci_sdmmc" ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/pool/root"; - fsType = "ext4"; - }; - - fileSystems."/tmp" = - { device = "tmpfs"; - fsType = "tmpfs"; - }; - - fileSystems."/boot" = - { device = "/dev/sda1"; - fsType = "ext2"; - }; - - boot.initrd.luks.devices.crypted.device = "/dev/sda2"; - boot.initrd.luks.cryptoModules = [ "aes" "sha512" "sha1" "xts" ]; - - swapDevices = [ ]; - - nix.maxJobs = lib.mkDefault 4; - # Use the GRUB 2 boot loader. - boot.loader.grub.enable = true; - boot.loader.grub.version = 2; - # Define on which hard drive you want to install Grub. - boot.loader.grub.device = "/dev/sda"; - - # Enable the OpenSSH daemon. - services.openssh.enable = true; - - # Enable CUPS to print documents. - # services.printing.enable = true; - - # nin config - time.timeZone = "Europe/Berlin"; - services.xserver = { - enable = true; - - displayManager.lightdm.enable = true; - }; - - networking.networkmanager.enable = true; - #networking.wireless.enable = true; - - hardware.pulseaudio = { - enable = true; - systemWide = true; - }; - - hardware.bluetooth.enable = true; - - hardware.opengl.driSupport32Bit = true; - - #nixpkgs.config.steam.java = true; - - environment.systemPackages = with pkgs; [ - atom - chromium - firefox - git - htop - keepassx - lmms - networkmanagerapplet - openvpn - python - ruby - steam - taskwarrior - thunderbird - vim - virtmanager - ]; - - nixpkgs.config = { - - allowUnfree = true; - - }; - - #services.logind.extraConfig = "HandleLidSwitch=ignore"; - - services.xserver.synaptics = { - enable = true; - }; - - services.xserver.displayManager.sessionCommands = '' - ${pkgs.xorg.xhost}/bin/xhost + local: - ''; - - services.xserver.desktopManager.xfce = let - xbindConfig = pkgs.writeText "xbindkeysrc" '' - "${pkgs.pass}/bin/passmenu --type" - Control + p - ''; - in { - enable = true; - extraSessionCommands = '' - ${pkgs.xbindkeys}/bin/xbindkeys -f ${xbindConfig} - ''; - }; - - # The NixOS release to be compatible with for stateful data such as databases. - system.stateVersion = "17.03"; - -} diff --git a/nin/1systems/hiawatha/config.nix b/nin/1systems/hiawatha/config.nix deleted file mode 100644 index a09eed9..0000000 --- a/nin/1systems/hiawatha/config.nix +++ /dev/null @@ -1,126 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -{ config, lib, pkgs, ... }: - -with lib; - -{ - imports = [ - - - #../2configs/copyq.nix - - - - - ]; - - krebs.build.host = config.krebs.hosts.hiawatha; - - boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "sd_mod" "sr_mod" "rtsx_pci_sdmmc" ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/b83f8830-84f3-4282-b10e-015c4b76bd9e"; - fsType = "ext4"; - }; - - fileSystems."/tmp" = - { device = "tmpfs"; - fsType = "tmpfs"; - }; - - fileSystems."/home" = - { device = "/dev/fam/home"; - }; - - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/2f319b08-2560-401d-b53c-2abd28f1a010"; - fsType = "ext2"; - }; - - boot.initrd.luks.devices = [ { name = "luksroot"; device = "/dev/sda2"; } ]; - boot.initrd.luks.cryptoModules = [ "aes" "sha512" "sha1" "xts" ]; - - swapDevices = [ ]; - - nix.maxJobs = lib.mkDefault 4; - # Use the GRUB 2 boot loader. - boot.loader.grub.enable = true; - boot.loader.grub.version = 2; - # Define on which hard drive you want to install Grub. - boot.loader.grub.device = "/dev/sda"; - - # Enable the OpenSSH daemon. - services.openssh.enable = true; - - # Enable CUPS to print documents. - # services.printing.enable = true; - - fileSystems."/home/nin/.local/share/Steam" = { - device = "/dev/fam/steam"; - }; - - # nin config - time.timeZone = "Europe/Berlin"; - services.xserver.enable = true; - - networking.networkmanager.enable = true; - #networking.wireless.enable = true; - - hardware.pulseaudio = { - enable = true; - systemWide = true; - }; - - hardware.bluetooth.enable = true; - - hardware.opengl.driSupport32Bit = true; - - #nixpkgs.config.steam.java = true; - - environment.systemPackages = with pkgs; [ - firefox - git - lmms - networkmanagerapplet - python - steam - thunderbird - vim - virtmanager - ]; - - nixpkgs.config = { - - allowUnfree = true; - - }; - - #services.logind.extraConfig = "HandleLidSwitch=ignore"; - - services.xserver.synaptics = { - enable = true; - }; - - - services.xserver.desktopManager.xfce = let - xbindConfig = pkgs.writeText "xbindkeysrc" '' - "${pkgs.pass}/bin/passmenu --type" - Control + p - ''; - in { - enable = true; - extraSessionCommands = '' - ${pkgs.xbindkeys}/bin/xbindkeys -f ${xbindConfig} - ''; - }; - - # The NixOS release to be compatible with for stateful data such as databases. - system.stateVersion = "17.03"; - -} diff --git a/nin/1systems/onondaga/config.nix b/nin/1systems/onondaga/config.nix deleted file mode 100644 index 3cd0773..0000000 --- a/nin/1systems/onondaga/config.nix +++ /dev/null @@ -1,23 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -{ config, lib, pkgs, ... }: - -{ - imports = [ - - - - - ]; - - krebs.build.host = config.krebs.hosts.onondaga; - - boot.isContainer = true; - networking.useDHCP = false; - - time.timeZone = "Europe/Amsterdam"; - - services.openssh.enable = true; -} diff --git a/nin/2configs/ableton.nix b/nin/2configs/ableton.nix deleted file mode 100644 index 343a908..0000000 --- a/nin/2configs/ableton.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ config, pkgs, ... }: let - mainUser = config.users.extraUsers.nin; -in { - users.users= { - ableton = { - isNormalUser = true; - extraGroups = [ - "audio" - "video" - ]; - packages = [ - pkgs.wine - pkgs.winetricks - ]; - }; - }; - security.sudo.extraConfig = '' - ${mainUser.name} ALL=(ableton) NOPASSWD: ALL - ''; -} diff --git a/nin/2configs/copyq.nix b/nin/2configs/copyq.nix deleted file mode 100644 index 0616c40..0000000 --- a/nin/2configs/copyq.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ config, pkgs, ... }: -with import ; -let - copyqConfig = pkgs.writeDash "copyq-config" '' - ${pkgs.copyq}/bin/copyq config check_clipboard true - ${pkgs.copyq}/bin/copyq config check_selection true - ${pkgs.copyq}/bin/copyq config copy_clipboard true - ${pkgs.copyq}/bin/copyq config copy_selection true - - ${pkgs.copyq}/bin/copyq config activate_closes true - ${pkgs.copyq}/bin/copyq config clipboard_notification_lines 0 - ${pkgs.copyq}/bin/copyq config clipboard_tab clipboard - ${pkgs.copyq}/bin/copyq config disable_tray true - ${pkgs.copyq}/bin/copyq config hide_tabs true - ${pkgs.copyq}/bin/copyq config hide_toolbar true - ${pkgs.copyq}/bin/copyq config item_popup_interval true - ${pkgs.copyq}/bin/copyq config maxitems 1000 - ${pkgs.copyq}/bin/copyq config move true - ${pkgs.copyq}/bin/copyq config text_wrap true - ''; -in { - systemd.user.services.copyq = { - after = [ "graphical.target" ]; - wants = [ "graphical.target" ]; - wantedBy = [ "default.target" ]; - environment = { - DISPLAY = ":0"; - }; - serviceConfig = { - SyslogIdentifier = "copyq"; - ExecStart = "${pkgs.copyq}/bin/copyq"; - ExecStartPost = copyqConfig; - Restart = "always"; - RestartSec = "2s"; - StartLimitBurst = 0; - }; - }; -} diff --git a/nin/2configs/default.nix b/nin/2configs/default.nix deleted file mode 100644 index 250383c..0000000 --- a/nin/2configs/default.nix +++ /dev/null @@ -1,173 +0,0 @@ -{ config, lib, pkgs, ... }: - -with import ; -{ - imports = [ - ../2configs/vim.nix - - - { - users.extraUsers = - mapAttrs (_: h: { hashedPassword = h; }) - (import ); - } - { - users.users = { - root = { - openssh.authorizedKeys.keys = [ - config.krebs.users.nin.pubkey - config.krebs.users.nin_h.pubkey - ]; - }; - nin = { - name = "nin"; - uid = 1337; - home = "/home/nin"; - group = "users"; - createHome = true; - useDefaultShell = true; - extraGroups = [ - "audio" - "fuse" - ]; - openssh.authorizedKeys.keys = [ - config.krebs.users.nin.pubkey - config.krebs.users.nin_h.pubkey - ]; - }; - }; - } - { - environment.variables = { - NIX_PATH = mkForce "secrets=/var/src/stockholm/null:/var/src"; - }; - } - (let ca-bundle = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; in { - environment.variables = { - CURL_CA_BUNDLE = ca-bundle; - GIT_SSL_CAINFO = ca-bundle; - SSL_CERT_FILE = ca-bundle; - }; - }) - ]; - - networking.hostName = config.krebs.build.host.name; - nix.maxJobs = config.krebs.build.host.cores; - - krebs = { - enable = true; - dns.search-domain = "r"; - build = { - user = config.krebs.users.nin; - }; - }; - - nix.useSandbox = true; - - users.mutableUsers = false; - - services.timesyncd.enable = true; - - #why is this on in the first place? - services.nscd.enable = false; - - boot.tmpOnTmpfs = true; - # see tmpfiles.d(5) - systemd.tmpfiles.rules = [ - "d /tmp 1777 root root - -" - ]; - - # multiple-definition-problem when defining environment.variables.EDITOR - environment.extraInit = '' - EDITOR=vim - ''; - - nixpkgs.config.allowUnfree = true; - - environment.shellAliases = { - gs = "git status"; - }; - - environment.systemPackages = with pkgs; [ - #stockholm - git - gnumake - jq - proot - pavucontrol - populate - p7zip - termite - unzip - unrar - hashPassword - ]; - - programs.bash = { - enableCompletion = true; - interactiveShellInit = '' - HISTCONTROL='erasedups:ignorespace' - HISTSIZE=65536 - HISTFILESIZE=$HISTSIZE - - shopt -s checkhash - shopt -s histappend histreedit histverify - shopt -s no_empty_cmd_completion - complete -d cd - ''; - promptInit = '' - if test $UID = 0; then - PS1='\[\033[1;31m\]$PWD\[\033[0m\] ' - elif test $UID = 1337; then - PS1='\[\033[1;32m\]$PWD\[\033[0m\] ' - else - PS1='\[\033[1;33m\]\u@$PWD\[\033[0m\] ' - fi - if test -n "$SSH_CLIENT"; then - PS1='\[\033[35m\]\h'" $PS1" - fi - ''; - }; - - services.openssh = { - enable = true; - hostKeys = [ - # XXX bits here make no science - { bits = 8192; type = "ed25519"; path = "/etc/ssh/ssh_host_ed25519_key"; } - ]; - }; - - services.journald.extraConfig = '' - SystemMaxUse=1G - RuntimeMaxUse=128M - ''; - - krebs.iptables = { - enable = true; - tables = { - nat.PREROUTING.rules = [ - { predicate = "! -i retiolum -p tcp -m tcp --dport 22"; target = "REDIRECT --to-ports 0"; precedence = 100; } - { predicate = "-p tcp -m tcp --dport 45621"; target = "REDIRECT --to-ports 22"; precedence = 99; } - ]; - nat.OUTPUT.rules = [ - { predicate = "-o lo -p tcp -m tcp --dport 45621"; target = "REDIRECT --to-ports 22"; precedence = 100; } - ]; - filter.INPUT.policy = "DROP"; - filter.FORWARD.policy = "DROP"; - filter.INPUT.rules = [ - { predicate = "-m conntrack --ctstate RELATED,ESTABLISHED"; target = "ACCEPT"; precedence = 10001; } - { predicate = "-p icmp"; target = "ACCEPT"; precedence = 10000; } - { predicate = "-p ipv6-icmp"; target = "ACCEPT"; v4 = false; precedence = 10000; } - { predicate = "-i lo"; target = "ACCEPT"; precedence = 9999; } - { predicate = "-p tcp --dport 22"; target = "ACCEPT"; precedence = 9998; } - { predicate = "-p tcp -i retiolum"; target = "REJECT --reject-with tcp-reset"; precedence = -10000; } - { predicate = "-p udp -i retiolum"; target = "REJECT --reject-with icmp-port-unreachable"; v6 = false; precedence = -10000; } - { predicate = "-i retiolum"; target = "REJECT --reject-with icmp-proto-unreachable"; v6 = false; precedence = -10000; } - ]; - }; - }; - - networking.dhcpcd.extraConfig = '' - noipv4ll - ''; -} diff --git a/nin/2configs/games.nix b/nin/2configs/games.nix deleted file mode 100644 index 15e1723..0000000 --- a/nin/2configs/games.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ config, pkgs, ... }: - -let - mainUser = config.users.extraUsers.mainUser; - vdoom = pkgs.writeDash "vdoom" '' - ${pkgs.zandronum}/bin/zandronum \ - -fov 120 \ - "$@" - ''; - doom = pkgs.writeDash "doom" '' - DOOM_DIR=''${DOOM_DIR:-~/doom/} - ${vdoom} \ - -file $DOOM_DIR/lib/brutalv20.pk3 \ - "$@" - ''; - doom1 = pkgs.writeDashBin "doom1" '' - DOOM_DIR=''${DOOM_DIR:-~/doom/} - ${doom} -iwad $DOOM_DIR/wads/stock/doom.wad "$@" - ''; - doom2 = pkgs.writeDashBin "doom2" '' - DOOM_DIR=''${DOOM_DIR:-~/doom/} - ${doom} -iwad $DOOM_DIR/wads/stock/doom2.wad "$@" - ''; - vdoom1 = pkgs.writeDashBin "vdoom1" '' - DOOM_DIR=''${DOOM_DIR:-~/doom/} - ${vdoom} -iwad $DOOM_DIR/wads/stock/doom.wad "$@" - ''; - vdoom2 = pkgs.writeDashBin "vdoom2" '' - DOOM_DIR=''${DOOM_DIR:-~/doom/} - ${vdoom} -iwad $DOOM_DIR/wads/stock/doom2.wad "$@" - ''; - - doomservercfg = pkgs.writeText "doomserver.cfg" '' - skill 7 - #survival true - #sv_maxlives 4 - #sv_norespawn true - #sv_weapondrop true - no_jump true - #sv_noweaponspawn true - sv_sharekeys true - sv_survivalcountdowntime 1 - sv_noteamselect true - sv_updatemaster false - #sv_coop_loseinventory true - #cl_startasspectator false - #lms_spectatorview false - ''; - - vdoomserver = pkgs.writeDashBin "vdoomserver" '' - DOOM_DIR=''${DOOM_DIR:-~/doom/} - - ${pkgs.zandronum}/bin/zandronum-server \ - +exec ${doomservercfg} \ - "$@" - ''; - -in { - environment.systemPackages = with pkgs; [ - dwarf_fortress - doom1 - doom2 - vdoom1 - vdoom2 - vdoomserver - ]; - - hardware.pulseaudio.support32Bit = true; - -} diff --git a/nin/2configs/git.nix b/nin/2configs/git.nix deleted file mode 100644 index aed4a9f..0000000 --- a/nin/2configs/git.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ config, lib, pkgs, ... }: - -with import ; - -let - - out = { - services.nginx.enable = true; - krebs.git = { - enable = true; - cgit = { - settings = { - root-title = "public repositories at ${config.krebs.build.host.name}"; - root-desc = "keep calm and engage"; - }; - }; - repos = mapAttrs (_: s: removeAttrs s ["collaborators"]) repos; - rules = rules; - }; - - krebs.iptables.tables.filter.INPUT.rules = [ - { predicate = "-i retiolum -p tcp --dport 80"; target = "ACCEPT"; } - ]; - }; - - repos = public-repos; - - rules = concatMap make-rules (attrValues repos); - - public-repos = mapAttrs make-public-repo { - stockholm = { - cgit.desc = "take all the computers hostage, they'll love you!"; - }; - }; - - make-public-repo = name: { cgit ? {}, ... }: { - inherit cgit name; - public = true; - }; - - make-rules = - with git // config.krebs.users; - repo: - singleton { - user = [ nin nin_h ]; - repo = [ repo ]; - perm = push "refs/*" [ non-fast-forward create delete merge ]; - } ++ - optional repo.public { - user = attrValues config.krebs.users; - repo = [ repo ]; - perm = fetch; - } ++ - optional (length (repo.collaborators or []) > 0) { - user = repo.collaborators; - repo = [ repo ]; - perm = fetch; - }; - -in out diff --git a/nin/2configs/im.nix b/nin/2configs/im.nix deleted file mode 100644 index b078dbd..0000000 --- a/nin/2configs/im.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ config, lib, pkgs, ... }: -with import ; -{ - environment.systemPackages = with pkgs; [ - (pkgs.writeDashBin "im" '' - export PATH=${makeSearchPath "bin" (with pkgs; [ - tmux - gnugrep - weechat - ])} - ssh chat@onondaga - if tmux list-sessions -F\#S | grep -q '^im''$'; then - exec tmux attach -t im - else - exec tmux new -s im weechat - fi - '') - ]; -} diff --git a/nin/2configs/retiolum.nix b/nin/2configs/retiolum.nix deleted file mode 100644 index 821e3cc..0000000 --- a/nin/2configs/retiolum.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ ... }: - -{ - - krebs.iptables = { - tables = { - filter.INPUT.rules = [ - { predicate = "-i retiolum -p tcp --dport smtp"; target = "ACCEPT"; } - { predicate = "-p tcp --dport tinc"; target = "ACCEPT"; } - { predicate = "-p udp --dport tinc"; target = "ACCEPT"; } - ]; - }; - }; - - krebs.tinc.retiolum = { - enable = true; - connectTo = [ - "prism" - "pigstarter" - "gum" - "flap" - ]; - }; - - nixpkgs.config.packageOverrides = pkgs: { - tinc = pkgs.tinc_pre; - }; -} diff --git a/nin/2configs/skype.nix b/nin/2configs/skype.nix deleted file mode 100644 index 621dfae..0000000 --- a/nin/2configs/skype.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - mainUser = config.users.extraUsers.nin; - inherit (import ) genid; - -in { - users.extraUsers = { - skype = { - name = "skype"; - uid = genid "skype"; - description = "user for running skype"; - home = "/home/skype"; - useDefaultShell = true; - extraGroups = [ "audio" "video" ]; - createHome = true; - }; - }; - - krebs.per-user.skype.packages = [ - pkgs.skype - ]; - - security.sudo.extraConfig = '' - ${mainUser.name} ALL=(skype) NOPASSWD: ALL - ''; -} diff --git a/nin/2configs/termite.nix b/nin/2configs/termite.nix deleted file mode 100644 index 942446b..0000000 --- a/nin/2configs/termite.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ config, pkgs, ... }: - -{ - environment.systemPackages = [ - pkgs.termite - ]; - - krebs.per-user.nin.packages = let - termitecfg = pkgs.writeTextFile { - name = "termite-config"; - destination = "/etc/xdg/termite/config"; - text = '' - [colors] - foreground = #d0d7d0 - background = #000000 - ''; - }; - in [ - termitecfg - ]; - -} diff --git a/nin/2configs/vim.nix b/nin/2configs/vim.nix deleted file mode 100644 index 7b5d376..0000000 --- a/nin/2configs/vim.nix +++ /dev/null @@ -1,355 +0,0 @@ -{ config, lib, pkgs, ... }: - -with import ; -let - out = { - environment.systemPackages = [ - vim - pkgs.pythonPackages.flake8 - ]; - - environment.etc.vimrc.source = vimrc; - - environment.variables.EDITOR = mkForce "vim"; - environment.variables.VIMINIT = ":so /etc/vimrc"; - }; - - vimrc = pkgs.writeText "vimrc" '' - set nocompatible - - set autoindent - set backspace=indent,eol,start - set backup - set backupdir=${dirs.backupdir}/ - set directory=${dirs.swapdir}// - set hlsearch - set incsearch - set laststatus=2 - set mouse=a - set noruler - set pastetoggle= - set runtimepath=${extra-runtimepath},$VIMRUNTIME - set shortmess+=I - set showcmd - set showmatch - set ttimeoutlen=0 - set undodir=${dirs.undodir} - set undofile - set undolevels=1000000 - set undoreload=1000000 - set viminfo='20,<1000,s100,h,n${files.viminfo} - set visualbell - set wildignore+=*.o,*.class,*.hi,*.dyn_hi,*.dyn_o - set wildmenu - set wildmode=longest,full - - set et ts=2 sts=2 sw=2 - - filetype plugin indent on - - set t_Co=256 - colorscheme hack - syntax on - - au Syntax * syn match Garbage containedin=ALL /\s\+$/ - \ | syn match TabStop containedin=ALL /\t\+/ - \ | syn keyword Todo containedin=ALL TODO - - au BufRead,BufNewFile *.hs so ${hs.vim} - - au BufRead,BufNewFile *.nix so ${nix.vim} - - au BufRead,BufNewFile /dev/shm/* set nobackup nowritebackup noswapfile - - "Syntastic config - let g:syntastic_python_checkers=['flake8'] - - nmap q :buffer - nmap :buffer - - cnoremap - - noremap :q - vnoremap < >gv - - nnoremap [5^ :tabp - nnoremap [6^ :tabn - nnoremap [5@ :tabm -1 - nnoremap [6@ :tabm +1 - - nnoremap :tabp - nnoremap :tabn - inoremap :tabp - inoremap :tabn - - " - noremap Oa | noremap! Oa - noremap Ob | noremap! Ob - noremap Oc | noremap! Oc - noremap Od | noremap! Od - " <[C]S-{Up,Down,Right,Left> - noremap [a | noremap! [a - noremap [b | noremap! [b - noremap [c | noremap! [c - noremap [d | noremap! [d - vnoremap u - ''; - - extra-runtimepath = concatMapStringsSep "," (pkg: "${pkg.rtp}") [ - pkgs.vimPlugins.Syntastic - pkgs.vimPlugins.undotree - pkgs.vimPlugins.airline - (pkgs.vimUtils.buildVimPlugin { - name = "file-line-1.0"; - src = pkgs.fetchgit { - url = git://github.com/bogado/file-line; - rev = "refs/tags/1.0"; - sha256 = "0z47zq9rqh06ny0q8lpcdsraf3lyzn9xvb59nywnarf3nxrk6hx0"; - }; - }) - ((rtp: rtp // { inherit rtp; }) (pkgs.writeTextFile (let - name = "hack"; - in { - name = "vim-color-${name}-1.0.2"; - destination = "/colors/${name}.vim"; - text = /* vim */ '' - set background=dark - hi clear - if exists("syntax_on") - syntax clear - endif - - let colors_name = ${toJSON name} - - hi Normal ctermbg=235 - hi Comment ctermfg=242 - hi Constant ctermfg=062 - hi Identifier ctermfg=068 - hi Function ctermfg=041 - hi Statement ctermfg=167 - hi PreProc ctermfg=167 - hi Type ctermfg=041 - hi Delimiter ctermfg=251 - hi Special ctermfg=062 - - hi Garbage ctermbg=088 - hi TabStop ctermbg=016 - hi Todo ctermfg=174 ctermbg=NONE - - hi NixCode ctermfg=148 - hi NixData ctermfg=149 - hi NixQuote ctermfg=150 - - hi diffNewFile ctermfg=207 - hi diffFile ctermfg=207 - hi diffLine ctermfg=207 - hi diffSubname ctermfg=207 - hi diffAdded ctermfg=010 - hi diffRemoved ctermfg=009 - ''; - }))) - ((rtp: rtp // { inherit rtp; }) (pkgs.writeTextFile (let - name = "vim"; - in { - name = "vim-syntax-${name}-1.0.0"; - destination = "/syntax/${name}.vim"; - text = /* vim */ '' - ${concatMapStringsSep "\n" (s: /* vim */ '' - syn keyword vimColor${s} ${s} - \ containedin=ALLBUT,vimComment,vimLineComment - hi vimColor${s} ctermfg=${s} - '') (map (i: lpad 3 "0" (toString i)) (range 0 255))} - ''; - }))) - ((rtp: rtp // { inherit rtp; }) (pkgs.writeTextFile (let - name = "showsyntax"; - in { - name = "vim-plugin-${name}-1.0.0"; - destination = "/plugin/${name}.vim"; - text = /* vim */ '' - if exists('g:loaded_showsyntax') - finish - endif - let g:loaded_showsyntax = 0 - - fu! ShowSyntax() - let id = synID(line("."), col("."), 1) - let name = synIDattr(id, "name") - let transName = synIDattr(synIDtrans(id),"name") - if name != transName - let name .= " (" . transName . ")" - endif - echo "Syntax: " . name - endfu - - command! -n=0 -bar ShowSyntax :call ShowSyntax() - ''; - }))) - ]; - - dirs = { - backupdir = "$HOME/.cache/vim/backup"; - swapdir = "$HOME/.cache/vim/swap"; - undodir = "$HOME/.cache/vim/undo"; - }; - files = { - viminfo = "$HOME/.cache/vim/info"; - }; - - mkdirs = let - dirOf = s: let out = concatStringsSep "/" (init (splitString "/" s)); - in assert out != ""; out; - alldirs = attrValues dirs ++ map dirOf (attrValues files); - in unique (sort lessThan alldirs); - - vim = pkgs.writeDashBin "vim" '' - set -efu - (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs}) - exec ${pkgs.vim}/bin/vim "$@" - ''; - - - hs.vim = pkgs.writeText "hs.vim" '' - syn region String start=+\[[[:alnum:]]*|+ end=+|]+ - - hi link ConId Identifier - hi link VarId Identifier - hi link hsDelimiter Delimiter - ''; - - nix.vim = pkgs.writeText "nix.vim" '' - setf nix - - " Ref - syn match NixID /[a-zA-Z\_][a-zA-Z0-9\_\'\-]*/ - syn match NixINT /\<[0-9]\+\>/ - syn match NixPATH /[a-zA-Z0-9\.\_\-\+]*\(\/[a-zA-Z0-9\.\_\-\+]\+\)\+/ - syn match NixHPATH /\~\(\/[a-zA-Z0-9\.\_\-\+]\+\)\+/ - syn match NixSPATH /<[a-zA-Z0-9\.\_\-\+]\+\(\/[a-zA-Z0-9\.\_\-\+]\+\)*>/ - syn match NixURI /[a-zA-Z][a-zA-Z0-9\+\-\.]*:[a-zA-Z0-9\%\/\?\:\@\&\=\+\$\,\-\_\.\!\~\*\']\+/ - syn region NixSTRING - \ matchgroup=NixSTRING - \ start='"' - \ skip='\\"' - \ end='"' - syn region NixIND_STRING - \ matchgroup=NixIND_STRING - \ start="'''" - \ skip="'''\('\|[$]\|\\[nrt]\)" - \ end="'''" - - syn match NixOther /[():/;=.,?\[\]]/ - - syn match NixCommentMatch /\(^\|\s\)#.*/ - syn region NixCommentRegion start="/\*" end="\*/" - - hi link NixCode Statement - hi link NixData Constant - hi link NixComment Comment - - hi link NixCommentMatch NixComment - hi link NixCommentRegion NixComment - hi link NixID NixCode - hi link NixINT NixData - hi link NixPATH NixData - hi link NixHPATH NixData - hi link NixSPATH NixData - hi link NixURI NixData - hi link NixSTRING NixData - hi link NixIND_STRING NixData - - hi link NixEnter NixCode - hi link NixOther NixCode - hi link NixQuote NixData - - syn cluster nix_has_dollar_curly contains=@nix_ind_strings,@nix_strings - syn cluster nix_ind_strings contains=NixIND_STRING - syn cluster nix_strings contains=NixSTRING - - ${concatStringsSep "\n" (mapAttrsToList (lang: { extraStart ? null }: let - startAlts = filter isString [ - ''/\* ${lang} \*/'' - extraStart - ]; - sigil = ''\(${concatStringsSep ''\|'' startAlts}\)[ \t\r\n]*''; - in /* vim */ '' - syn include @nix_${lang}_syntax syntax/${lang}.vim - unlet b:current_syntax - - syn match nix_${lang}_sigil - \ X${replaceStrings ["X"] ["\\X"] sigil}\ze\('''\|"\)X - \ nextgroup=nix_${lang}_region_IND_STRING,nix_${lang}_region_STRING - \ transparent - - syn region nix_${lang}_region_STRING - \ matchgroup=NixSTRING - \ start='"' - \ skip='\\"' - \ end='"' - \ contained - \ contains=@nix_${lang}_syntax - \ transparent - - syn region nix_${lang}_region_IND_STRING - \ matchgroup=NixIND_STRING - \ start="'''" - \ skip="'''\('\|[$]\|\\[nrt]\)" - \ end="'''" - \ contained - \ contains=@nix_${lang}_syntax - \ transparent - - syn cluster nix_ind_strings - \ add=nix_${lang}_region_IND_STRING - - syn cluster nix_strings - \ add=nix_${lang}_region_STRING - - syn cluster nix_has_dollar_curly - \ add=@nix_${lang}_syntax - '') { - c = {}; - cabal = {}; - haskell = {}; - sh.extraStart = ''write\(Ba\|Da\)sh[^ \t\r\n]*[ \t\r\n]*"[^"]*"''; - vim.extraStart = - ''write[^ \t\r\n]*[ \t\r\n]*"\(\([^"]*\.\)\?vimrc\|[^"]*\.vim\)"''; - })} - - " Clear syntax that interferes with nixINSIDE_DOLLAR_CURLY. - syn clear shVarAssign - - syn region nixINSIDE_DOLLAR_CURLY - \ matchgroup=NixEnter - \ start="[$]{" - \ end="}" - \ contains=TOP - \ containedin=@nix_has_dollar_curly - \ transparent - - syn region nix_inside_curly - \ matchgroup=NixEnter - \ start="{" - \ end="}" - \ contains=TOP - \ containedin=nixINSIDE_DOLLAR_CURLY,nix_inside_curly - \ transparent - - syn match NixQuote /'''\([''$']\|\\.\)/he=s+2 - \ containedin=@nix_ind_strings - \ contained - - syn match NixQuote /\\./he=s+1 - \ containedin=@nix_strings - \ contained - - syn sync fromstart - - let b:current_syntax = "nix" - - set isk=@,48-57,_,192-255,-,' - set bg=dark - ''; -in -out diff --git a/nin/2configs/weechat.nix b/nin/2configs/weechat.nix deleted file mode 100644 index 6c0fb31..0000000 --- a/nin/2configs/weechat.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - inherit (import ) genid; -in { - krebs.per-user.chat.packages = with pkgs; [ - mosh - weechat - tmux - ]; - - users.extraUsers.chat = { - home = "/home/chat"; - uid = genid "chat"; - useDefaultShell = true; - createHome = true; - openssh.authorizedKeys.keys = [ - config.krebs.users.nin.pubkey - ]; - }; -} diff --git a/nin/default.nix b/nin/default.nix deleted file mode 100644 index c31d6d9..0000000 --- a/nin/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -_: -{ - imports = [ - ../krebs - ./2configs - ]; -} diff --git a/nin/krops.nix b/nin/krops.nix deleted file mode 100644 index 52aeb84..0000000 --- a/nin/krops.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ name }: let - inherit (import ../krebs/krops.nix { inherit name; }) - krebs-source - lib - pkgs - ; - - source = { test }: lib.evalSource [ - (krebs-source { test = test; }) - { - nixos-config.symlink = "stockholm/nin/1systems/${name}/config.nix"; - secrets = if test then { - file = toString ./0tests/dummysecrets; - } else { - pass = { - dir = "${lib.getEnv "HOME"}/.password-store"; - name = "hosts/${name}"; - }; - }; - } - ]; - -in { - # usage: $(nix-build --no-out-link --argstr name HOSTNAME -A deploy) - deploy = pkgs.krops.writeDeploy "${name}-deploy" { - source = source { test = false; }; - target = "root@${name}/var/src"; - }; - - # usage: $(nix-build --no-out-link --argstr name HOSTNAME --argstr target PATH -A test) - test = { target }: pkgs.krops.writeTest "${name}-test" { - inherit target; - source = source { test = true; }; - }; -} -- cgit v1.3.1 From 8e99c0401a030d7ba7ea415e58cac1a23415922e Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 22 Apr 2020 12:32:12 +0200 Subject: j reagenzglas: remove haskell --- jeschli/1systems/reagenzglas/config.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix index b3b3355..dec6956 100644 --- a/jeschli/1systems/reagenzglas/config.nix +++ b/jeschli/1systems/reagenzglas/config.nix @@ -7,7 +7,6 @@ - ./desktop.nix -- cgit v1.3.1 From 9d62e48c8011fae4c0df8d797fc964282f2d7655 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 22 Apr 2020 12:33:21 +0200 Subject: j elisp: update to latest commit --- jeschli/2configs/elisp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeschli/2configs/elisp b/jeschli/2configs/elisp index ae1a03d..279d6a0 160000 --- a/jeschli/2configs/elisp +++ b/jeschli/2configs/elisp @@ -1 +1 @@ -Subproject commit ae1a03ddee80d73ac166af75cdb1d93d24fa44b9 +Subproject commit 279d6a01f5abbab5d28d3a57549b7fec800a510e -- cgit v1.3.1 From 352c1aa944b4f175f9d6578f16f339e3126d15e6 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Wed, 22 Apr 2020 16:06:29 +0200 Subject: j ublock-origin: licenses.gnu3 -> licenses.gpl3 --- jeschli/2configs/own-pkgs/ublock-origin/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeschli/2configs/own-pkgs/ublock-origin/default.nix b/jeschli/2configs/own-pkgs/ublock-origin/default.nix index 45465d4..002fa3e 100644 --- a/jeschli/2configs/own-pkgs/ublock-origin/default.nix +++ b/jeschli/2configs/own-pkgs/ublock-origin/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "ublock origin firefox browser addon"; homepage = https://github.com/gorhill/uBlock; - license = licenses.gnu3; + license = licenses.gpl3; maintainers = []; platforms = stdenv.lib.platforms.all; }; -- cgit v1.3.1 From 9ca2bfbead33ee35a57aee10dc5d105c0211f3bb Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 22 Apr 2020 16:41:58 +0200 Subject: lib types: remove deprecated string usage --- lib/types.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/types.nix b/lib/types.nix index ffae8c7..5cd44b5 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -65,7 +65,7 @@ rec { extraZones = mkOption { default = {}; # TODO: string is either MX, NS, A or AAAA - type = attrsOf string; + type = attrsOf str; }; secure = mkOption { -- cgit v1.3.1 From d1eb719ee126d4f3d72cd2ef5944f0afdb2d858f Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 22 Apr 2020 16:55:07 +0200 Subject: types: remove last deprecated string type --- lib/types.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/types.nix b/lib/types.nix index 5cd44b5..16ccb14 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -7,7 +7,7 @@ let mkOptionType optional optionalAttrs optionals range splitString stringLength substring test testString typeOf; inherit (lib.types) - attrsOf bool either enum int listOf nullOr path str string submodule; + attrsOf bool either enum int listOf nullOr path str submodule; in rec { @@ -182,7 +182,7 @@ rec { extraConfig = mkOption { description = "Extra Configuration to be appended to the hosts file"; default = ""; - type = string; + type = str; }; port = mkOption { type = int; -- cgit v1.3.1 From be388387c629fc3f2da03d8de611eab9c5f2eb35 Mon Sep 17 00:00:00 2001 From: Jeschli Date: Thu, 23 Apr 2020 19:47:18 +0200 Subject: j firefox: overlay from 2configs -> 5pkgs/firefox --- jeschli/2configs/firefox.nix | 15 +- jeschli/2configs/overlays/firefox-with-config.nix | 488 --------------------- .../audio-fingerprint-defender/default.nix | 40 -- .../canvas-fingerprint-defender/default.nix | 40 -- jeschli/2configs/own-pkgs/dark-reader/default.nix | 28 -- .../own-pkgs/font-fingerprint-defender/default.nix | 40 -- jeschli/2configs/own-pkgs/hopper/default.nix | 45 -- .../2configs/own-pkgs/https-everywhere/default.nix | 29 -- jeschli/2configs/own-pkgs/pyocclient/default.nix | 26 -- jeschli/2configs/own-pkgs/rmount/default.nix | 34 -- .../2configs/own-pkgs/ublock-origin/default.nix | 28 -- .../own-pkgs/user-agent-switcher/default.nix | 40 -- .../webgl-fingerprint-defender/default.nix | 40 -- jeschli/2configs/own-pkgs/wl-clipboard/default.nix | 25 -- .../firefox/audio-fingerprint-defender/default.nix | 40 ++ .../canvas-fingerprint-defender/default.nix | 40 ++ jeschli/5pkgs/firefox/dark-reader/default.nix | 28 ++ jeschli/5pkgs/firefox/default.nix | 18 + jeschli/5pkgs/firefox/firefox-with-config.nix | 488 +++++++++++++++++++++ .../firefox/font-fingerprint-defender/default.nix | 40 ++ jeschli/5pkgs/firefox/hopper/default.nix | 45 ++ jeschli/5pkgs/firefox/https-everywhere/default.nix | 29 ++ jeschli/5pkgs/firefox/pyocclient/default.nix | 26 ++ jeschli/5pkgs/firefox/rmount/default.nix | 34 ++ jeschli/5pkgs/firefox/ublock-origin/default.nix | 28 ++ .../5pkgs/firefox/user-agent-switcher/default.nix | 40 ++ .../firefox/webgl-fingerprint-defender/default.nix | 40 ++ jeschli/5pkgs/firefox/wl-clipboard/default.nix | 25 ++ 28 files changed, 924 insertions(+), 915 deletions(-) delete mode 100644 jeschli/2configs/overlays/firefox-with-config.nix delete mode 100644 jeschli/2configs/own-pkgs/audio-fingerprint-defender/default.nix delete mode 100644 jeschli/2configs/own-pkgs/canvas-fingerprint-defender/default.nix delete mode 100644 jeschli/2configs/own-pkgs/dark-reader/default.nix delete mode 100644 jeschli/2configs/own-pkgs/font-fingerprint-defender/default.nix delete mode 100644 jeschli/2configs/own-pkgs/hopper/default.nix delete mode 100644 jeschli/2configs/own-pkgs/https-everywhere/default.nix delete mode 100644 jeschli/2configs/own-pkgs/pyocclient/default.nix delete mode 100644 jeschli/2configs/own-pkgs/rmount/default.nix delete mode 100644 jeschli/2configs/own-pkgs/ublock-origin/default.nix delete mode 100644 jeschli/2configs/own-pkgs/user-agent-switcher/default.nix delete mode 100644 jeschli/2configs/own-pkgs/webgl-fingerprint-defender/default.nix delete mode 100644 jeschli/2configs/own-pkgs/wl-clipboard/default.nix create mode 100644 jeschli/5pkgs/firefox/audio-fingerprint-defender/default.nix create mode 100644 jeschli/5pkgs/firefox/canvas-fingerprint-defender/default.nix create mode 100644 jeschli/5pkgs/firefox/dark-reader/default.nix create mode 100644 jeschli/5pkgs/firefox/default.nix create mode 100644 jeschli/5pkgs/firefox/firefox-with-config.nix create mode 100644 jeschli/5pkgs/firefox/font-fingerprint-defender/default.nix create mode 100644 jeschli/5pkgs/firefox/hopper/default.nix create mode 100644 jeschli/5pkgs/firefox/https-everywhere/default.nix create mode 100644 jeschli/5pkgs/firefox/pyocclient/default.nix create mode 100644 jeschli/5pkgs/firefox/rmount/default.nix create mode 100644 jeschli/5pkgs/firefox/ublock-origin/default.nix create mode 100644 jeschli/5pkgs/firefox/user-agent-switcher/default.nix create mode 100644 jeschli/5pkgs/firefox/webgl-fingerprint-defender/default.nix create mode 100644 jeschli/5pkgs/firefox/wl-clipboard/default.nix diff --git a/jeschli/2configs/firefox.nix b/jeschli/2configs/firefox.nix index d171fa8..1e1e169 100644 --- a/jeschli/2configs/firefox.nix +++ b/jeschli/2configs/firefox.nix @@ -2,20 +2,11 @@ let - # Firefox addons - https-everywhere = pkgs.callPackage ./own-pkgs/https-everywhere {}; - ublock-origin = pkgs.callPackage ./own-pkgs/ublock-origin {}; - webgl-fingerprint-defender = pkgs.callPackage ./own-pkgs/webgl-fingerprint-defender {}; - canvas-fingerprint-defender = pkgs.callPackage ./own-pkgs/canvas-fingerprint-defender {}; - audio-fingerprint-defender = pkgs.callPackage ./own-pkgs/audio-fingerprint-defender {}; - font-fingerprint-defender = pkgs.callPackage ./own-pkgs/font-fingerprint-defender {}; - user-agent-switcher = pkgs.callPackage ./own-pkgs/user-agent-switcher {}; - dark-reader = pkgs.callPackage ./own-pkgs/dark-reader {}; - - wrapper = pkgs.callPackage ./overlays/firefox-with-config.nix { }; + wrapper = pkgs.callPackage ../5pkgs/firefox/firefox-with-config.nix { }; myFirefox = wrapper pkgs.firefox-unwrapped { - extraExtensions = [ + # these plugins are defined in 5pkgs/firefox + extraExtensions = with pkgs ; [ dark-reader https-everywhere ublock-origin diff --git a/jeschli/2configs/overlays/firefox-with-config.nix b/jeschli/2configs/overlays/firefox-with-config.nix deleted file mode 100644 index 9be6250..0000000 --- a/jeschli/2configs/overlays/firefox-with-config.nix +++ /dev/null @@ -1,488 +0,0 @@ -{ stdenv, lib, pkgs, makeDesktopItem, makeWrapper, lndir, replace, config - -## various stuff that can be plugged in -, flashplayer, hal-flash -, MPlayerPlugin, ffmpeg, xorg, libpulseaudio, libcanberra-gtk2 -, jrePlugin, icedtea_web -, bluejeans, djview4, adobe-reader -, google_talk_plugin, fribid, gnome3/*.gnome-shell*/ -, esteidfirefoxplugin ? "" -, browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow -, udev -, kerberos - -}: - -## configurability of the wrapper itself - -browser: - -let - wrapper = - { browserName ? browser.browserName or (builtins.parseDrvName browser.name).name - , name ? (browserName + "-" + (builtins.parseDrvName browser.name).version) - , desktopName ? # browserName with first letter capitalized - (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName) - , nameSuffix ? "" - , icon ? browserName - , extraPlugins ? [] - , extraPrefs ? "" - , extraExtensions ? [ ] - , allowNonSigned ? false - , disablePocket ? false - , disableTelemetry ? true - , disableDrmPlugin ? false - , showPunycodeUrls ? true - , disableFirefoxStudies ? true - , disableFirefoxSync ? false - , useSystemCertificates ? true - , dontCheckDefaultBrowser ? false - # For more information about anti tracking - # vist https://wiki.kairaven.de/open/app/firefox - , activateAntiTracking ? true - , disableFeedbackCommands ? true - , disableDNSOverHTTPS ? true - , disableGoogleSafebrowsing ? false - , clearDataOnShutdown ? false - , homepage ? "about:blank" - # For more information about policies visit - # https://github.com/mozilla/policy-templates#enterprisepoliciesenabled - , extraPolicies ? {} - , extraNativeMessagingHosts ? [] - , gdkWayland ? false - }: - - assert gdkWayland -> (browser ? gtk3); # Can only use the wayland backend if gtk3 is being used - - let - - # If extraExtensions has been set disable manual extensions - disableManualExtensions = if lib.count (x: true) extraExtensions > 0 then true else false; - - cfg = config.${browserName} or {}; - enableAdobeFlash = cfg.enableAdobeFlash or false; - ffmpegSupport = browser.ffmpegSupport or false; - gssSupport = browser.gssSupport or false; - jre = cfg.jre or false; - icedtea = cfg.icedtea or false; - supportsJDK = - stdenv.hostPlatform.system == "i686-linux" || - stdenv.hostPlatform.system == "x86_64-linux" || - stdenv.hostPlatform.system == "armv7l-linux" || - stdenv.hostPlatform.system == "aarch64-linux"; - - plugins = - assert !(jre && icedtea); - if builtins.hasAttr "enableVLC" cfg - then throw "The option \"${browserName}.enableVLC\" has been removed since Firefox no longer supports npapi plugins" - else - ([ ] - ++ lib.optional enableAdobeFlash flashplayer - ++ lib.optional (cfg.enableDjvu or false) (djview4) - ++ lib.optional (cfg.enableMPlayer or false) (MPlayerPlugin browser) - ++ lib.optional (supportsJDK && jre && jrePlugin ? mozillaPlugin) jrePlugin - ++ lib.optional icedtea icedtea_web - ++ lib.optional (cfg.enableGoogleTalkPlugin or false) google_talk_plugin - ++ lib.optional (cfg.enableFriBIDPlugin or false) fribid - ++ lib.optional (cfg.enableGnomeExtensions or false) gnome3.gnome-shell - ++ lib.optional (cfg.enableBluejeans or false) bluejeans - ++ lib.optional (cfg.enableAdobeReader or false) adobe-reader - ++ lib.optional (cfg.enableEsteid or false) esteidfirefoxplugin - ++ extraPlugins - ); - nativeMessagingHosts = - ([ ] - ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass) - ++ lib.optional (cfg.enableBukubrow or false) bukubrow - ++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell - ++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator - ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma-browser-integration - ++ extraNativeMessagingHosts - ); - libs = lib.optional stdenv.isLinux udev - ++ lib.optional ffmpegSupport ffmpeg - ++ lib.optional gssSupport kerberos - ++ lib.optionals (cfg.enableQuakeLive or false) - (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ]) - ++ lib.optional (enableAdobeFlash && (cfg.enableAdobeFlashDRM or false)) hal-flash - ++ lib.optional (config.pulseaudio or true) libpulseaudio; - gtk_modules = [ libcanberra-gtk2 ]; - - enterprisePolicies = - { - policies = { - DisableAppUpdate = true; - } // lib.optionalAttrs disableManualExtensions ( - { - ExtensionSettings = { - "*" = { - blocked_install_message = "You can't have manual extension mixed with nix extensions"; - installation_mode = "blocked"; - }; - - } // lib.foldr (e: ret: - ret // { - "${e.extid}" = { - installation_mode = "allowed"; - }; - } - ) {} extraExtensions; - } - ) // lib.optionalAttrs disablePocket ( - { - DisablePocket = true; - } - ) // lib.optionalAttrs disableTelemetry ( - { - DisableTelemetry = true; - } - ) // lib.optionalAttrs disableFirefoxStudies ( - { - DisableFirefoxStudies = true; - } - ) // lib.optionalAttrs disableFirefoxSync ( - { - DisableFirefoxAccounts = true; - } - ) // lib.optionalAttrs useSystemCertificates ( - { - # Disable useless firefox certificate store - Certificates = { - ImportEnterpriseRoots = true; - }; - } - ) // lib.optionalAttrs ( - if lib.count (x: true) extraExtensions > 0 then true else false) ( - { - # Don't try to update nix installed addons - DisableSystemAddonUpdate = true; - - # But update manually installed addons - ExtensionUpdate = false; - } - ) // lib.optionalAttrs dontCheckDefaultBrowser ( - { - DontCheckDefaultBrowser = true; - } - )// lib.optionalAttrs disableDNSOverHTTPS ( - { - DNSOverHTTPS = { - Enabled = false; - }; - } - ) // lib.optionalAttrs clearDataOnShutdown ( - { - SanitizeOnShutdown = true; - } - ) // lib.optionalAttrs disableFeedbackCommands ( - { - DisableFeedbackCommands = true; - } - ) // lib.optionalAttrs ( if homepage == "" then false else true) ( - { - Homepage = { - URL = homepage; - Locked = true; - }; - } - ) // extraPolicies ;} ; - - - extensions = builtins.map (a: - if ! (builtins.hasAttr "signed" a) || ! (builtins.isBool a.signed) then - throw "Addon ${a.pname} needs boolean attribute 'signed' " - else if ! (builtins.hasAttr "extid" a) || ! (builtins.isString a.extid) then - throw "Addon ${a.pname} needs a string attribute 'extid'" - else if a.signed == false && !allowNonSigned then - throw "Disable signature checking in firefox if you want ${a.pname} addon" - else a - ) extraExtensions; - - policiesJson = builtins.toFile "policies.json" - (builtins.toJSON enterprisePolicies); - - mozillaCfg = builtins.toFile "mozilla.cfg" '' - // First line must be a comment - - // Remove default top sites - lockPref("browser.newtabpage.pinned", ""); - lockPref("browser.newtabpage.activity-stream.default.sites", ""); - - // Deactivate first run homepage - lockPref("browser.startup.firstrunSkipsHomepage", false); - - // If true, don't show the privacy policy tab on first run - lockPref("datareporting.policy.dataSubmissionPolicyBypassNotification", true); - - ${ - if allowNonSigned == true then - ''lockPref("xpinstall.signatures.required", false)'' - else - "" - } - - ${ - if showPunycodeUrls == true then - '' - lockPref("network.IDN_show_punycode", true); - '' - else - "" - } - - ${ - if disableManualExtensions == true then - '' - lockPref("extensions.getAddons.showPane", false); - lockPref("extensions.htmlaboutaddons.recommendations.enabled", false); - lockPref("app.update.auto", false); - '' - else - "" - } - - ${ - if disableDrmPlugin == true then - '' - lockPref("media.gmp-gmpopenh264.enabled", false); - lockPref("media.gmp-widevinecdm.enabled", false); - '' - else - "" - } - - ${ - if activateAntiTracking == true then - '' - // Tracking - lockPref("browser.send_pings", false); - lockPref("browser.send_pings.require_same_host", true); - lockPref("network.dns.disablePrefetch", true); - lockPref("browser.contentblocking.trackingprotection.control-center.ui.enabled", false); - lockPref("browser.search.geoip.url", ""); - lockPref("privacy.firstparty.isolate", true); - lockPref("privacy.userContext.enabled", true); - lockPref("privacy.userContext.ui.enabled", true); - lockPref("privacy.firstparty.isolate.restrict_opener_access", false); - lockPref("network.http.referer.XOriginPolicy", 1); - lockPref("network.http.referer.hideOnionSource", true); - lockPref(" privacy.spoof_english", true); - - // This option is currently not usable because of bug: - // https://bugzilla.mozilla.org/show_bug.cgi?id=1557620 - // lockPref("privacy.resistFingerprinting", true); - '' - else "" - } - ${ - if disableTelemetry == true then - '' - // Telemetry - lockPref("browser.newtabpage.activity-stream.feeds.telemetry", false); - lockPref("browser.ping-centre.telemetry", false); - lockPref("devtools.onboarding.telemetry.logged", false); - lockPref("toolkit.telemetry.archive.enabled", false); - lockPref("toolkit.telemetry.bhrPing.enabled", false); - lockPref("toolkit.telemetry.enabled", false); - lockPref("toolkit.telemetry.firstShutdownPing.enabled", false); - lockPref("toolkit.telemetry.hybridContent.enabled", false); - lockPref("toolkit.telemetry.newProfilePing.enabled", false); - lockPref("toolkit.telemetry.shutdownPingSender.enabled", false); - lockPref("toolkit.telemetry.reportingpolicy.firstRun", false); - lockPref("dom.push.enabled", false); - lockPref("browser.newtabpage.activity-stream.feeds.snippets", false); - lockPref("security.ssl.errorReporting.enabled", false); - '' - else "" - } - - ${ - if disableGoogleSafebrowsing == true then - '' - // Google data sharing - lockPref("browser.safebrowsing.blockedURIs.enabled", false); - lockPref("browser.safebrowsing.downloads.enabled", false); - lockPref("browser.safebrowsing.malware.enabled", false); - lockPref("browser.safebrowsing.passwords.enabled", false); - lockPref("browser.safebrowsing.provider.google4.dataSharing.enabled", false); - lockPref("browser.safebrowsing.malware.enabled", false); - lockPref("browser.safebrowsing.phishing.enabled", false); - lockPref("browser.safebrowsing.provider.mozilla.gethashURL", ""); - lockPref("browser.safebrowsing.provider.mozilla.updateURL", ""); - '' - else "" - } - - // User customization - ${extraPrefs} - ''; - in stdenv.mkDerivation { - inherit name; - - desktopItem = makeDesktopItem { - name = browserName; - exec = "${browserName}${nameSuffix} %U"; - inherit icon; - comment = ""; - desktopName = "${desktopName}${nameSuffix}${lib.optionalString gdkWayland " (Wayland)"}"; - genericName = "Web Browser"; - categories = "Application;Network;WebBrowser;"; - mimeType = stdenv.lib.concatStringsSep ";" [ - "text/html" - "text/xml" - "application/xhtml+xml" - "application/vnd.mozilla.xul+xml" - "x-scheme-handler/http" - "x-scheme-handler/https" - "x-scheme-handler/ftp" - ]; - }; - - nativeBuildInputs = [ makeWrapper lndir ]; - buildInputs = lib.optional (browser ? gtk3) browser.gtk3; - - buildCommand = lib.optionalString stdenv.isDarwin '' - mkdir -p $out/Applications - cp -R --no-preserve=mode,ownership ${browser}/Applications/${browserName}.app $out/Applications - rm -f $out${browser.execdir or "/bin"}/${browserName} - '' + '' - - # Link the runtime. The executable itself has to be copied, - # because it will resolve paths relative to its true location. - # Any symbolic links have to be replicated as well. - cd "${browser}" - find . -type d -exec mkdir -p "$out"/{} \; - - find . -type f \( -not -name "${browserName}" \) -exec ln -sT "${browser}"/{} "$out"/{} \; - - find . -type f -name "${browserName}" -print0 | while read -d $'\0' f; do - cp -P --no-preserve=mode,ownership "${browser}/$f" "$out/$f" - chmod a+rwx "$out/$f" - done - - # fix links and absolute references - cd "${browser}" - - find . -type l -print0 | while read -d $'\0' l; do - target="$(readlink "$l" | ${replace}/bin/replace-literal -es -- "${browser}" "$out")" - ln -sfT "$target" "$out/$l" - done - - # This will not patch binaries, only "text" files. - # Its there for the wrapper mostly. - cd "$out" - ${replace}/bin/replace-literal -esfR -- "${browser}" "$out" - - # create the wrapper - - executablePrefix="$out${browser.execdir or "/bin"}" - executablePath="$executablePrefix/${browserName}" - - if [ ! -x "$executablePath" ] - then - echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" - exit 1 - fi - - if [ ! -L "$executablePath" ] - then - # Careful here, the file at executablePath may already be - # a wrapper. That is why we postfix it with -old instead - # of -wrapped. - oldExe="$executablePrefix"/".${browserName}"-old - mv "$executablePath" "$oldExe" - else - oldExe="$(readlink -v --canonicalize-existing "$executablePath")" - fi - - - makeWrapper "$oldExe" "$out${browser.execdir or "/bin"}/${browserName}${nameSuffix}" \ - --suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \ - --suffix LD_LIBRARY_PATH ':' "$libs" \ - --suffix-each GTK_PATH ':' "$gtk_modules" \ - --suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \ - --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \ - --suffix PATH ':' "$out${browser.execdir or "/bin"}" \ - --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \ - --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \ - ${lib.optionalString gdkWayland '' - --set GDK_BACKEND "wayland" \ - ''}${lib.optionalString (browser ? gtk3) - ''--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ - --suffix XDG_DATA_DIRS : '${gnome3.adwaita-icon-theme}/share' - '' - } - - if [ -e "${browser}/share/icons" ]; then - mkdir -p "$out/share" - ln -s "${browser}/share/icons" "$out/share/icons" - else - for res in 16 32 48 64 128; do - mkdir -p "$out/share/icons/hicolor/''${res}x''${res}/apps" - icon=( "${browser}/lib/"*"/browser/chrome/icons/default/default''${res}.png" ) - if [ -e "$icon" ]; then ln -s "$icon" \ - "$out/share/icons/hicolor/''${res}x''${res}/apps/${browserName}.png" - fi - done - fi - - install -D -t $out/share/applications $desktopItem/share/applications/* - - mkdir -p $out/lib/mozilla - for ext in ${toString nativeMessagingHosts}; do - lndir -silent $ext/lib/mozilla $out/lib/mozilla - done - - # For manpages, in case the program supplies them - mkdir -p $out/nix-support - echo ${browser} > $out/nix-support/propagated-user-env-packages - - # user customization - mkdir -p $out/lib/firefox - - # creating policies.json - mkdir -p "$out/lib/firefox/distribution" - - cat > "$out/lib/firefox/distribution/policies.json" < ${policiesJson} - - # preparing for autoconfig - mkdir -p "$out/lib/firefox/defaults/pref" - - cat > "$out/lib/firefox/defaults/pref/autoconfig.js" < "$out/lib/firefox/mozilla.cfg" < ${mozillaCfg} - - mkdir -p $out/lib/firefox/distribution/extensions - - for i in ${toString extensions}; do - ln -s -t $out/lib/firefox/distribution/extensions $i/* - done - ''; - - preferLocalBuild = true; - - # Let each plugin tell us (through its `mozillaPlugin') attribute - # where to find the plugin in its tree. - plugins = map (x: x + x.mozillaPlugin) plugins; - libs = lib.makeLibraryPath libs + ":" + lib.makeSearchPathOutput "lib" "lib64" libs; - gtk_modules = map (x: x + x.gtkModule) gtk_modules; - - passthru = { unwrapped = browser; }; - - disallowedRequisites = [ stdenv.cc ]; - - meta = browser.meta // { - description = - browser.meta.description - + " (with plugins: " - + lib.concatStrings (lib.intersperse ", " (map (x: x.name) plugins)) - + ")"; - hydraPlatforms = []; - priority = (browser.meta.priority or 0) - 1; # prefer wrapper over the package - }; - }; -in - lib.makeOverridable wrapper diff --git a/jeschli/2configs/own-pkgs/audio-fingerprint-defender/default.nix b/jeschli/2configs/own-pkgs/audio-fingerprint-defender/default.nix deleted file mode 100644 index 05815e1..0000000 --- a/jeschli/2configs/own-pkgs/audio-fingerprint-defender/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, fetchurl, unzip, jq, zip }: - -stdenv.mkDerivation rec { - pname = "audio-fingerprint-defender-${version}"; - version = "0.1.3"; - - extid = "@audio-fingerprint-defender"; - signed = false; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3363623/audiocontext_fingerprint_defender-${version}-an+fx.xpi"; - sha256 = "0yfk5vqwjg4g25c98psj56sw3kv8imxav3nss4hbibflgla1h5pb"; - }; - - phases = [ "buildPhase" ]; - - buildInputs = [ zip unzip jq ]; - - buildPhase = '' - mkdir -p $out/${extid} - unzip ${src} -d $out/${extid} - NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) - echo "$NEW_MANIFEST" > $out/${extid}/manifest.json - cd $out/${extid} - zip -r -FS $out/${extid}.xpi * - rm -r $out/${extid} - ''; - - meta = with stdenv.lib; { - description = "Audio context fingerprint defender firefox browser addon"; - homepage = https://mybrowseraddon.com/audiocontext-defender.html; - license = { - fullName = "Mozilla Public License Version 2.0"; - shortName = "moz2"; - spdxId = "mozilla-2.0"; - url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/2configs/own-pkgs/canvas-fingerprint-defender/default.nix b/jeschli/2configs/own-pkgs/canvas-fingerprint-defender/default.nix deleted file mode 100644 index 21b4b3f..0000000 --- a/jeschli/2configs/own-pkgs/canvas-fingerprint-defender/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, fetchurl, unzip, jq, zip }: - -stdenv.mkDerivation rec { - pname = "canvas-fingerprint-defender-${version}"; - version = "0.1.5"; - - extid = "@canvas-fingerprint-defender"; - signed = false; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3362272/canvas_fingerprint_defender-${version}-an+fx.xpi?src=recommended"; - sha256 = "1hg00zsrw7ij7bc222j83g2wm3ml1aj34zg5im1802cjq4qqvbld"; - }; - - phases = [ "buildPhase" ]; - - buildInputs = [ zip unzip jq ]; - - buildPhase = '' - mkdir -p $out/${extid} - unzip ${src} -d $out/${extid} - NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) - echo "$NEW_MANIFEST" > $out/${extid}/manifest.json - cd $out/${extid} - zip -r -FS $out/${extid}.xpi * - rm -r $out/${extid} - ''; - - meta = with stdenv.lib; { - description = "Canvas fingerprint defender firefox browser addon"; - homepage = https://mybrowseraddon.com/webgl-defender.html; - license = { - fullName = "Mozilla Public License Version 2.0"; - shortName = "moz2"; - spdxId = "mozilla-2.0"; - url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/2configs/own-pkgs/dark-reader/default.nix b/jeschli/2configs/own-pkgs/dark-reader/default.nix deleted file mode 100644 index 44f4f90..0000000 --- a/jeschli/2configs/own-pkgs/dark-reader/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "dark-reader-${version}"; - version = "4.8.1"; - - extid = "addon@darkreader.org"; - signed = true; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3404143/dark_reader-${version}-an+fx.xpi"; - sha256 = "0ic0i56jhmxymvy68bs5hqcjvdvw3vks5r58i2ygmpsm190rlldb"; - }; - - phases = [ "installPhase" ]; - - installPhase = '' - install -D ${src} "$out/${extid}.xpi" - ''; - - meta = with stdenv.lib; { - description = "Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing."; - homepage = https://github.com/darkreader/darkreader; - license = licenses.mit; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/2configs/own-pkgs/font-fingerprint-defender/default.nix b/jeschli/2configs/own-pkgs/font-fingerprint-defender/default.nix deleted file mode 100644 index 26751be..0000000 --- a/jeschli/2configs/own-pkgs/font-fingerprint-defender/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, fetchurl, unzip, jq, zip }: - -stdenv.mkDerivation rec { - pname = "font-fingerprint-defender-${version}"; - version = "0.1.0"; - - extid = "@font-fingerprint-defender"; - signed = false; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3387637/font_fingerprint_defender-${version}-an+fx.xpi"; - sha256 = "1aidkvisnx6qd7hn2x756rvzmbnaz6laqbwq0j5yd86g1kc56dr0"; - }; - - phases = [ "buildPhase" ]; - - buildInputs = [ zip unzip jq ]; - - buildPhase = '' - mkdir -p $out/${extid} - unzip ${src} -d $out/${extid} - NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) - echo "$NEW_MANIFEST" > $out/${extid}/manifest.json - cd $out/${extid} - zip -r -FS $out/${extid}.xpi * - rm -r $out/${extid} - ''; - - meta = with stdenv.lib; { - description = "Font fingerprint defender firefox browser addon"; - homepage = https://mybrowseraddon.com/font-defender.html; - license = { - fullName = "Mozilla Public License Version 2.0"; - shortName = "moz2"; - spdxId = "mozilla-2.0"; - url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/2configs/own-pkgs/hopper/default.nix b/jeschli/2configs/own-pkgs/hopper/default.nix deleted file mode 100644 index 569fc6a..0000000 --- a/jeschli/2configs/own-pkgs/hopper/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ stdenv, fetchurl, pkgs, makeWrapper, lib }: - -stdenv.mkDerivation rec { - name = "${pname}-${version}"; - pname = "hopper"; - version = "4.5.16"; - rev = "v${lib.versions.major version}"; - - src = fetchurl { - url = "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-${rev}-${version}-Linux.pkg.tar.xz"; - sha256 = "0gjnn7f6ibfx46k4bbj8ra7k04s0mrpq7316brgzks6x5yd1m584"; - }; - - sourceRoot = "."; - - ldLibraryPath = with pkgs; stdenv.lib.makeLibraryPath [ -libbsd.out libffi.out gmpxx.out python27Full.out python27Packages.libxml2.out qt5.qtbase zlib xlibs.libX11.out xorg_sys_opengl.out xlibs.libXrender.out gcc-unwrapped.lib - ]; - - nativeBuildInputs = [ makeWrapper ]; - - installPhase = '' - mkdir -p $out/bin - mkdir -p $out/lib - mkdir -p $out/share - cp $sourceRoot/opt/hopper-${rev}/bin/Hopper $out/bin/hopper - cp -r $sourceRoot/opt/hopper-${rev}/lib $out - cp -r $sourceRoot/usr/share $out/share - patchelf \ - --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 \ - $out/bin/hopper - # Details: https://nixos.wiki/wiki/Qt - wrapProgram $out/bin/hopper \ - --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \ - --suffix QT_PLUGIN_PATH : ${pkgs.qt5.qtbase}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins - ''; - - meta = { - homepage = "https://www.hopperapp.com/index.html"; - description = "A macOS and Linux Disassembler"; - license = stdenv.lib.licenses.unfree; - maintainers = [ stdenv.lib.maintainers.luis ]; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/jeschli/2configs/own-pkgs/https-everywhere/default.nix b/jeschli/2configs/own-pkgs/https-everywhere/default.nix deleted file mode 100644 index 66fede4..0000000 --- a/jeschli/2configs/own-pkgs/https-everywhere/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "https-everywhere-${version}"; - version = "2019.6.27"; - - extid = "https-everywhere@eff.org"; - signed = true; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3060290/https_everywhere-${version}-an+fx.xpi"; - sha256 = "0743lhn9phn7n6c0886h9ddn1n8vhzbl0vrw177zs43995aj3frp"; - }; - - phases = [ "installPhase" ]; - - installPhase = '' - install -D ${src} "$out/${extid}.xpi" - - ''; - - meta = { - description = "Https everywhere browser addon"; - homepage = https://www.eff.org/https-everywhere; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/2configs/own-pkgs/pyocclient/default.nix b/jeschli/2configs/own-pkgs/pyocclient/default.nix deleted file mode 100644 index cd91f61..0000000 --- a/jeschli/2configs/own-pkgs/pyocclient/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, python37Packages }: - -python37Packages.buildPythonPackage rec { - pname = "pyocclient"; - version = "0.4"; - - src = python37Packages.fetchPypi { - inherit pname version; - sha256 = "19k3slrk2idixsdw61in9a3jxglvkigkn5kvwl37lj8hrwr4yq6q"; - }; - - doCheck = false; - - propagatedBuildInputs = with python37Packages; [ - requests - six - ]; - - meta = with lib; { - homepage = https://github.com/owncloud/pyocclient/; - description = "Nextcloud / Owncloud library for python"; - license = licenses.mit; - maintainers = with maintainers; [ ]; - }; - -} diff --git a/jeschli/2configs/own-pkgs/rmount/default.nix b/jeschli/2configs/own-pkgs/rmount/default.nix deleted file mode 100644 index 22631f4..0000000 --- a/jeschli/2configs/own-pkgs/rmount/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ stdenv, fetchgit, makeWrapper, lib, pkgs ? import {} }: -with pkgs; - -stdenv.mkDerivation rec { - name = "rmount-${version}"; - version = "1.0.1"; - rev = "v${version}"; - - src = fetchgit { - rev = "9df124780d2e66f01c70afaecf92090669c5ffb6"; - url = "https://github.com/Luis-Hebendanz/rmount"; - sha256 = "0ydb6sspfnfa3y6gg1r8sk4r58il6636lpqwb2rw7dzmb4b8hpd2"; - }; - - buildInputs = [ stdenv makeWrapper ]; - - installPhase = '' - mkdir -p $out/bin - mkdir -p $out/share/man/man1 - cp ${src}/rmount.man $out/share/man/man1/rmount.1 - cp ${src}/rmount.bash $out/bin/rmount-noenv - cp ${src}/config.json $out/share/config.json - chmod +x $out/bin/rmount-noenv - - makeWrapper $out/bin/rmount-noenv $out/bin/rmount \ - --prefix PATH : ${lib.makeBinPath [ nmap jq cifs-utils sshfs ]} - ''; - - meta = { - homepage = "https://github.com/Luis-Hebendanz/rmount"; - description = "Remote mount utility which parses a json file"; - license = stdenv.lib.licenses.mit; - }; -} diff --git a/jeschli/2configs/own-pkgs/ublock-origin/default.nix b/jeschli/2configs/own-pkgs/ublock-origin/default.nix deleted file mode 100644 index 002fa3e..0000000 --- a/jeschli/2configs/own-pkgs/ublock-origin/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "ublock-origin-${version}"; - version = "1.21.2"; - - extid = "uBlock0@raymondhill.net"; - signed = true; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3361355/ublock_origin-${version}-an+fx.xpi"; - sha256 = "0ypdq3z61mrymknl37qlq6379bx9f2fsgbgr0czbhqs9f2vwszkc"; - }; - - phases = [ "installPhase" ]; - - installPhase = '' - install -D ${src} "$out/${extid}.xpi" - ''; - - meta = with stdenv.lib; { - description = "ublock origin firefox browser addon"; - homepage = https://github.com/gorhill/uBlock; - license = licenses.gpl3; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/2configs/own-pkgs/user-agent-switcher/default.nix b/jeschli/2configs/own-pkgs/user-agent-switcher/default.nix deleted file mode 100644 index c96f111..0000000 --- a/jeschli/2configs/own-pkgs/user-agent-switcher/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, fetchurl, unzip, jq, zip }: - -stdenv.mkDerivation rec { - pname = "user-agent-switcher-${version}"; - version = "0.3.2"; - - extid = "@user-agent-switcher"; - signed = false; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3370255/user_agent_switcher_and_manager-${version}-an+fx.xpi"; - sha256 = "0lrw1xf6fsxr47bifkayfxpysv8s2p9ghmbmw2s7ymhrgy42i6v5"; - }; - - phases = [ "buildPhase" ]; - - buildInputs = [ zip unzip jq ]; - - buildPhase = '' - mkdir -p $out/${extid} - unzip ${src} -d $out/${extid} - NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) - echo "$NEW_MANIFEST" > $out/${extid}/manifest.json - cd $out/${extid} - zip -r -FS $out/${extid}.xpi * - rm -r $out/${extid} - ''; - - meta = with stdenv.lib; { - description = "User agent switcher"; - homepage = https://add0n.com/useragent-switcher.html; - license = { - fullName = "Mozilla Public License Version 2.0"; - shortName = "moz2"; - spdxId = "mozilla-2.0"; - url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/2configs/own-pkgs/webgl-fingerprint-defender/default.nix b/jeschli/2configs/own-pkgs/webgl-fingerprint-defender/default.nix deleted file mode 100644 index 4e608d1..0000000 --- a/jeschli/2configs/own-pkgs/webgl-fingerprint-defender/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, fetchurl, unzip, jq, zip }: - -stdenv.mkDerivation rec { - pname = "webgl-fingerprint-defender-${version}"; - version = "0.1.2"; - - extid = "@webgl-fingerprint-defender"; - signed = false; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3362869/webgl_fingerprint_defender-${version}-an+fx.xpi"; - sha256 = "06hfr5hxr4qw0jx6i9fi9gdk5211z08brnvqj2jlmpyc3dwl4pif"; - }; - - phases = [ "buildPhase" ]; - - buildInputs = [ zip unzip jq ]; - - buildPhase = '' - mkdir -p $out/${extid} - unzip ${src} -d $out/${extid} - NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) - echo "$NEW_MANIFEST" > $out/${extid}/manifest.json - cd $out/${extid} - zip -r -FS $out/${extid}.xpi * - rm -r $out/${extid} - ''; - - meta = with stdenv.lib; { - description = "Canvas defender firefox browser addon"; - homepage = https://mybrowseraddon.com/webgl-defender.html; - license = { - fullName = "Mozilla Public License Version 2.0"; - shortName = "moz2"; - spdxId = "mozilla-2.0"; - url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/2configs/own-pkgs/wl-clipboard/default.nix b/jeschli/2configs/own-pkgs/wl-clipboard/default.nix deleted file mode 100644 index 349d910..0000000 --- a/jeschli/2configs/own-pkgs/wl-clipboard/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig -, wayland, wayland-protocols }: - -stdenv.mkDerivation rec { - pname = "wl-clipboard"; - version = "2.0.0"; - - src = fetchFromGitHub { - owner = "bugaevc"; - repo = "wl-clipboard"; - rev = "v${version}"; - sha256 = "0c4w87ipsw09aii34szj9p0xfy0m00wyjpll0gb0aqmwa60p0c5d"; - }; - - nativeBuildInputs = [ meson ninja pkgconfig wayland-protocols ]; - buildInputs = [ wayland ]; - - meta = with stdenv.lib; { - description = "Command-line copy/paste utilities for Wayland"; - homepage = https://github.com/bugaevc/wl-clipboard; - license = licenses.gpl3; - maintainers = with maintainers; [ dywedir ]; - platforms = platforms.linux; - }; -} diff --git a/jeschli/5pkgs/firefox/audio-fingerprint-defender/default.nix b/jeschli/5pkgs/firefox/audio-fingerprint-defender/default.nix new file mode 100644 index 0000000..05815e1 --- /dev/null +++ b/jeschli/5pkgs/firefox/audio-fingerprint-defender/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, unzip, jq, zip }: + +stdenv.mkDerivation rec { + pname = "audio-fingerprint-defender-${version}"; + version = "0.1.3"; + + extid = "@audio-fingerprint-defender"; + signed = false; + + src = fetchurl { + url = "https://addons.mozilla.org/firefox/downloads/file/3363623/audiocontext_fingerprint_defender-${version}-an+fx.xpi"; + sha256 = "0yfk5vqwjg4g25c98psj56sw3kv8imxav3nss4hbibflgla1h5pb"; + }; + + phases = [ "buildPhase" ]; + + buildInputs = [ zip unzip jq ]; + + buildPhase = '' + mkdir -p $out/${extid} + unzip ${src} -d $out/${extid} + NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) + echo "$NEW_MANIFEST" > $out/${extid}/manifest.json + cd $out/${extid} + zip -r -FS $out/${extid}.xpi * + rm -r $out/${extid} + ''; + + meta = with stdenv.lib; { + description = "Audio context fingerprint defender firefox browser addon"; + homepage = https://mybrowseraddon.com/audiocontext-defender.html; + license = { + fullName = "Mozilla Public License Version 2.0"; + shortName = "moz2"; + spdxId = "mozilla-2.0"; + url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; + maintainers = []; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/jeschli/5pkgs/firefox/canvas-fingerprint-defender/default.nix b/jeschli/5pkgs/firefox/canvas-fingerprint-defender/default.nix new file mode 100644 index 0000000..21b4b3f --- /dev/null +++ b/jeschli/5pkgs/firefox/canvas-fingerprint-defender/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, unzip, jq, zip }: + +stdenv.mkDerivation rec { + pname = "canvas-fingerprint-defender-${version}"; + version = "0.1.5"; + + extid = "@canvas-fingerprint-defender"; + signed = false; + + src = fetchurl { + url = "https://addons.mozilla.org/firefox/downloads/file/3362272/canvas_fingerprint_defender-${version}-an+fx.xpi?src=recommended"; + sha256 = "1hg00zsrw7ij7bc222j83g2wm3ml1aj34zg5im1802cjq4qqvbld"; + }; + + phases = [ "buildPhase" ]; + + buildInputs = [ zip unzip jq ]; + + buildPhase = '' + mkdir -p $out/${extid} + unzip ${src} -d $out/${extid} + NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) + echo "$NEW_MANIFEST" > $out/${extid}/manifest.json + cd $out/${extid} + zip -r -FS $out/${extid}.xpi * + rm -r $out/${extid} + ''; + + meta = with stdenv.lib; { + description = "Canvas fingerprint defender firefox browser addon"; + homepage = https://mybrowseraddon.com/webgl-defender.html; + license = { + fullName = "Mozilla Public License Version 2.0"; + shortName = "moz2"; + spdxId = "mozilla-2.0"; + url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; + maintainers = []; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/jeschli/5pkgs/firefox/dark-reader/default.nix b/jeschli/5pkgs/firefox/dark-reader/default.nix new file mode 100644 index 0000000..44f4f90 --- /dev/null +++ b/jeschli/5pkgs/firefox/dark-reader/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "dark-reader-${version}"; + version = "4.8.1"; + + extid = "addon@darkreader.org"; + signed = true; + + src = fetchurl { + url = "https://addons.mozilla.org/firefox/downloads/file/3404143/dark_reader-${version}-an+fx.xpi"; + sha256 = "0ic0i56jhmxymvy68bs5hqcjvdvw3vks5r58i2ygmpsm190rlldb"; + }; + + phases = [ "installPhase" ]; + + installPhase = '' + install -D ${src} "$out/${extid}.xpi" + ''; + + meta = with stdenv.lib; { + description = "Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing."; + homepage = https://github.com/darkreader/darkreader; + license = licenses.mit; + maintainers = []; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/jeschli/5pkgs/firefox/default.nix b/jeschli/5pkgs/firefox/default.nix new file mode 100644 index 0000000..6ba4fec --- /dev/null +++ b/jeschli/5pkgs/firefox/default.nix @@ -0,0 +1,18 @@ +with import ; + +self: super: + +let + # This callPackage will try to detect obsolete overrides. + callPackage = path: args: let + override = self.callPackage path args; + upstream = optionalAttrs (override ? "name") + (super.${(parseDrvName override.name).name} or {}); + in if upstream ? "name" && + override ? "name" && + compareVersions upstream.name override.name != -1 + then trace "Upstream `${upstream.name}' gets overridden by `${override.name}'." override + else override; +in + + mapNixDir (path: callPackage path {}) ./. diff --git a/jeschli/5pkgs/firefox/firefox-with-config.nix b/jeschli/5pkgs/firefox/firefox-with-config.nix new file mode 100644 index 0000000..9be6250 --- /dev/null +++ b/jeschli/5pkgs/firefox/firefox-with-config.nix @@ -0,0 +1,488 @@ +{ stdenv, lib, pkgs, makeDesktopItem, makeWrapper, lndir, replace, config + +## various stuff that can be plugged in +, flashplayer, hal-flash +, MPlayerPlugin, ffmpeg, xorg, libpulseaudio, libcanberra-gtk2 +, jrePlugin, icedtea_web +, bluejeans, djview4, adobe-reader +, google_talk_plugin, fribid, gnome3/*.gnome-shell*/ +, esteidfirefoxplugin ? "" +, browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow +, udev +, kerberos + +}: + +## configurability of the wrapper itself + +browser: + +let + wrapper = + { browserName ? browser.browserName or (builtins.parseDrvName browser.name).name + , name ? (browserName + "-" + (builtins.parseDrvName browser.name).version) + , desktopName ? # browserName with first letter capitalized + (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName) + , nameSuffix ? "" + , icon ? browserName + , extraPlugins ? [] + , extraPrefs ? "" + , extraExtensions ? [ ] + , allowNonSigned ? false + , disablePocket ? false + , disableTelemetry ? true + , disableDrmPlugin ? false + , showPunycodeUrls ? true + , disableFirefoxStudies ? true + , disableFirefoxSync ? false + , useSystemCertificates ? true + , dontCheckDefaultBrowser ? false + # For more information about anti tracking + # vist https://wiki.kairaven.de/open/app/firefox + , activateAntiTracking ? true + , disableFeedbackCommands ? true + , disableDNSOverHTTPS ? true + , disableGoogleSafebrowsing ? false + , clearDataOnShutdown ? false + , homepage ? "about:blank" + # For more information about policies visit + # https://github.com/mozilla/policy-templates#enterprisepoliciesenabled + , extraPolicies ? {} + , extraNativeMessagingHosts ? [] + , gdkWayland ? false + }: + + assert gdkWayland -> (browser ? gtk3); # Can only use the wayland backend if gtk3 is being used + + let + + # If extraExtensions has been set disable manual extensions + disableManualExtensions = if lib.count (x: true) extraExtensions > 0 then true else false; + + cfg = config.${browserName} or {}; + enableAdobeFlash = cfg.enableAdobeFlash or false; + ffmpegSupport = browser.ffmpegSupport or false; + gssSupport = browser.gssSupport or false; + jre = cfg.jre or false; + icedtea = cfg.icedtea or false; + supportsJDK = + stdenv.hostPlatform.system == "i686-linux" || + stdenv.hostPlatform.system == "x86_64-linux" || + stdenv.hostPlatform.system == "armv7l-linux" || + stdenv.hostPlatform.system == "aarch64-linux"; + + plugins = + assert !(jre && icedtea); + if builtins.hasAttr "enableVLC" cfg + then throw "The option \"${browserName}.enableVLC\" has been removed since Firefox no longer supports npapi plugins" + else + ([ ] + ++ lib.optional enableAdobeFlash flashplayer + ++ lib.optional (cfg.enableDjvu or false) (djview4) + ++ lib.optional (cfg.enableMPlayer or false) (MPlayerPlugin browser) + ++ lib.optional (supportsJDK && jre && jrePlugin ? mozillaPlugin) jrePlugin + ++ lib.optional icedtea icedtea_web + ++ lib.optional (cfg.enableGoogleTalkPlugin or false) google_talk_plugin + ++ lib.optional (cfg.enableFriBIDPlugin or false) fribid + ++ lib.optional (cfg.enableGnomeExtensions or false) gnome3.gnome-shell + ++ lib.optional (cfg.enableBluejeans or false) bluejeans + ++ lib.optional (cfg.enableAdobeReader or false) adobe-reader + ++ lib.optional (cfg.enableEsteid or false) esteidfirefoxplugin + ++ extraPlugins + ); + nativeMessagingHosts = + ([ ] + ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass) + ++ lib.optional (cfg.enableBukubrow or false) bukubrow + ++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell + ++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator + ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma-browser-integration + ++ extraNativeMessagingHosts + ); + libs = lib.optional stdenv.isLinux udev + ++ lib.optional ffmpegSupport ffmpeg + ++ lib.optional gssSupport kerberos + ++ lib.optionals (cfg.enableQuakeLive or false) + (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ]) + ++ lib.optional (enableAdobeFlash && (cfg.enableAdobeFlashDRM or false)) hal-flash + ++ lib.optional (config.pulseaudio or true) libpulseaudio; + gtk_modules = [ libcanberra-gtk2 ]; + + enterprisePolicies = + { + policies = { + DisableAppUpdate = true; + } // lib.optionalAttrs disableManualExtensions ( + { + ExtensionSettings = { + "*" = { + blocked_install_message = "You can't have manual extension mixed with nix extensions"; + installation_mode = "blocked"; + }; + + } // lib.foldr (e: ret: + ret // { + "${e.extid}" = { + installation_mode = "allowed"; + }; + } + ) {} extraExtensions; + } + ) // lib.optionalAttrs disablePocket ( + { + DisablePocket = true; + } + ) // lib.optionalAttrs disableTelemetry ( + { + DisableTelemetry = true; + } + ) // lib.optionalAttrs disableFirefoxStudies ( + { + DisableFirefoxStudies = true; + } + ) // lib.optionalAttrs disableFirefoxSync ( + { + DisableFirefoxAccounts = true; + } + ) // lib.optionalAttrs useSystemCertificates ( + { + # Disable useless firefox certificate store + Certificates = { + ImportEnterpriseRoots = true; + }; + } + ) // lib.optionalAttrs ( + if lib.count (x: true) extraExtensions > 0 then true else false) ( + { + # Don't try to update nix installed addons + DisableSystemAddonUpdate = true; + + # But update manually installed addons + ExtensionUpdate = false; + } + ) // lib.optionalAttrs dontCheckDefaultBrowser ( + { + DontCheckDefaultBrowser = true; + } + )// lib.optionalAttrs disableDNSOverHTTPS ( + { + DNSOverHTTPS = { + Enabled = false; + }; + } + ) // lib.optionalAttrs clearDataOnShutdown ( + { + SanitizeOnShutdown = true; + } + ) // lib.optionalAttrs disableFeedbackCommands ( + { + DisableFeedbackCommands = true; + } + ) // lib.optionalAttrs ( if homepage == "" then false else true) ( + { + Homepage = { + URL = homepage; + Locked = true; + }; + } + ) // extraPolicies ;} ; + + + extensions = builtins.map (a: + if ! (builtins.hasAttr "signed" a) || ! (builtins.isBool a.signed) then + throw "Addon ${a.pname} needs boolean attribute 'signed' " + else if ! (builtins.hasAttr "extid" a) || ! (builtins.isString a.extid) then + throw "Addon ${a.pname} needs a string attribute 'extid'" + else if a.signed == false && !allowNonSigned then + throw "Disable signature checking in firefox if you want ${a.pname} addon" + else a + ) extraExtensions; + + policiesJson = builtins.toFile "policies.json" + (builtins.toJSON enterprisePolicies); + + mozillaCfg = builtins.toFile "mozilla.cfg" '' + // First line must be a comment + + // Remove default top sites + lockPref("browser.newtabpage.pinned", ""); + lockPref("browser.newtabpage.activity-stream.default.sites", ""); + + // Deactivate first run homepage + lockPref("browser.startup.firstrunSkipsHomepage", false); + + // If true, don't show the privacy policy tab on first run + lockPref("datareporting.policy.dataSubmissionPolicyBypassNotification", true); + + ${ + if allowNonSigned == true then + ''lockPref("xpinstall.signatures.required", false)'' + else + "" + } + + ${ + if showPunycodeUrls == true then + '' + lockPref("network.IDN_show_punycode", true); + '' + else + "" + } + + ${ + if disableManualExtensions == true then + '' + lockPref("extensions.getAddons.showPane", false); + lockPref("extensions.htmlaboutaddons.recommendations.enabled", false); + lockPref("app.update.auto", false); + '' + else + "" + } + + ${ + if disableDrmPlugin == true then + '' + lockPref("media.gmp-gmpopenh264.enabled", false); + lockPref("media.gmp-widevinecdm.enabled", false); + '' + else + "" + } + + ${ + if activateAntiTracking == true then + '' + // Tracking + lockPref("browser.send_pings", false); + lockPref("browser.send_pings.require_same_host", true); + lockPref("network.dns.disablePrefetch", true); + lockPref("browser.contentblocking.trackingprotection.control-center.ui.enabled", false); + lockPref("browser.search.geoip.url", ""); + lockPref("privacy.firstparty.isolate", true); + lockPref("privacy.userContext.enabled", true); + lockPref("privacy.userContext.ui.enabled", true); + lockPref("privacy.firstparty.isolate.restrict_opener_access", false); + lockPref("network.http.referer.XOriginPolicy", 1); + lockPref("network.http.referer.hideOnionSource", true); + lockPref(" privacy.spoof_english", true); + + // This option is currently not usable because of bug: + // https://bugzilla.mozilla.org/show_bug.cgi?id=1557620 + // lockPref("privacy.resistFingerprinting", true); + '' + else "" + } + ${ + if disableTelemetry == true then + '' + // Telemetry + lockPref("browser.newtabpage.activity-stream.feeds.telemetry", false); + lockPref("browser.ping-centre.telemetry", false); + lockPref("devtools.onboarding.telemetry.logged", false); + lockPref("toolkit.telemetry.archive.enabled", false); + lockPref("toolkit.telemetry.bhrPing.enabled", false); + lockPref("toolkit.telemetry.enabled", false); + lockPref("toolkit.telemetry.firstShutdownPing.enabled", false); + lockPref("toolkit.telemetry.hybridContent.enabled", false); + lockPref("toolkit.telemetry.newProfilePing.enabled", false); + lockPref("toolkit.telemetry.shutdownPingSender.enabled", false); + lockPref("toolkit.telemetry.reportingpolicy.firstRun", false); + lockPref("dom.push.enabled", false); + lockPref("browser.newtabpage.activity-stream.feeds.snippets", false); + lockPref("security.ssl.errorReporting.enabled", false); + '' + else "" + } + + ${ + if disableGoogleSafebrowsing == true then + '' + // Google data sharing + lockPref("browser.safebrowsing.blockedURIs.enabled", false); + lockPref("browser.safebrowsing.downloads.enabled", false); + lockPref("browser.safebrowsing.malware.enabled", false); + lockPref("browser.safebrowsing.passwords.enabled", false); + lockPref("browser.safebrowsing.provider.google4.dataSharing.enabled", false); + lockPref("browser.safebrowsing.malware.enabled", false); + lockPref("browser.safebrowsing.phishing.enabled", false); + lockPref("browser.safebrowsing.provider.mozilla.gethashURL", ""); + lockPref("browser.safebrowsing.provider.mozilla.updateURL", ""); + '' + else "" + } + + // User customization + ${extraPrefs} + ''; + in stdenv.mkDerivation { + inherit name; + + desktopItem = makeDesktopItem { + name = browserName; + exec = "${browserName}${nameSuffix} %U"; + inherit icon; + comment = ""; + desktopName = "${desktopName}${nameSuffix}${lib.optionalString gdkWayland " (Wayland)"}"; + genericName = "Web Browser"; + categories = "Application;Network;WebBrowser;"; + mimeType = stdenv.lib.concatStringsSep ";" [ + "text/html" + "text/xml" + "application/xhtml+xml" + "application/vnd.mozilla.xul+xml" + "x-scheme-handler/http" + "x-scheme-handler/https" + "x-scheme-handler/ftp" + ]; + }; + + nativeBuildInputs = [ makeWrapper lndir ]; + buildInputs = lib.optional (browser ? gtk3) browser.gtk3; + + buildCommand = lib.optionalString stdenv.isDarwin '' + mkdir -p $out/Applications + cp -R --no-preserve=mode,ownership ${browser}/Applications/${browserName}.app $out/Applications + rm -f $out${browser.execdir or "/bin"}/${browserName} + '' + '' + + # Link the runtime. The executable itself has to be copied, + # because it will resolve paths relative to its true location. + # Any symbolic links have to be replicated as well. + cd "${browser}" + find . -type d -exec mkdir -p "$out"/{} \; + + find . -type f \( -not -name "${browserName}" \) -exec ln -sT "${browser}"/{} "$out"/{} \; + + find . -type f -name "${browserName}" -print0 | while read -d $'\0' f; do + cp -P --no-preserve=mode,ownership "${browser}/$f" "$out/$f" + chmod a+rwx "$out/$f" + done + + # fix links and absolute references + cd "${browser}" + + find . -type l -print0 | while read -d $'\0' l; do + target="$(readlink "$l" | ${replace}/bin/replace-literal -es -- "${browser}" "$out")" + ln -sfT "$target" "$out/$l" + done + + # This will not patch binaries, only "text" files. + # Its there for the wrapper mostly. + cd "$out" + ${replace}/bin/replace-literal -esfR -- "${browser}" "$out" + + # create the wrapper + + executablePrefix="$out${browser.execdir or "/bin"}" + executablePath="$executablePrefix/${browserName}" + + if [ ! -x "$executablePath" ] + then + echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" + exit 1 + fi + + if [ ! -L "$executablePath" ] + then + # Careful here, the file at executablePath may already be + # a wrapper. That is why we postfix it with -old instead + # of -wrapped. + oldExe="$executablePrefix"/".${browserName}"-old + mv "$executablePath" "$oldExe" + else + oldExe="$(readlink -v --canonicalize-existing "$executablePath")" + fi + + + makeWrapper "$oldExe" "$out${browser.execdir or "/bin"}/${browserName}${nameSuffix}" \ + --suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \ + --suffix LD_LIBRARY_PATH ':' "$libs" \ + --suffix-each GTK_PATH ':' "$gtk_modules" \ + --suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \ + --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \ + --suffix PATH ':' "$out${browser.execdir or "/bin"}" \ + --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \ + --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \ + ${lib.optionalString gdkWayland '' + --set GDK_BACKEND "wayland" \ + ''}${lib.optionalString (browser ? gtk3) + ''--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ + --suffix XDG_DATA_DIRS : '${gnome3.adwaita-icon-theme}/share' + '' + } + + if [ -e "${browser}/share/icons" ]; then + mkdir -p "$out/share" + ln -s "${browser}/share/icons" "$out/share/icons" + else + for res in 16 32 48 64 128; do + mkdir -p "$out/share/icons/hicolor/''${res}x''${res}/apps" + icon=( "${browser}/lib/"*"/browser/chrome/icons/default/default''${res}.png" ) + if [ -e "$icon" ]; then ln -s "$icon" \ + "$out/share/icons/hicolor/''${res}x''${res}/apps/${browserName}.png" + fi + done + fi + + install -D -t $out/share/applications $desktopItem/share/applications/* + + mkdir -p $out/lib/mozilla + for ext in ${toString nativeMessagingHosts}; do + lndir -silent $ext/lib/mozilla $out/lib/mozilla + done + + # For manpages, in case the program supplies them + mkdir -p $out/nix-support + echo ${browser} > $out/nix-support/propagated-user-env-packages + + # user customization + mkdir -p $out/lib/firefox + + # creating policies.json + mkdir -p "$out/lib/firefox/distribution" + + cat > "$out/lib/firefox/distribution/policies.json" < ${policiesJson} + + # preparing for autoconfig + mkdir -p "$out/lib/firefox/defaults/pref" + + cat > "$out/lib/firefox/defaults/pref/autoconfig.js" < "$out/lib/firefox/mozilla.cfg" < ${mozillaCfg} + + mkdir -p $out/lib/firefox/distribution/extensions + + for i in ${toString extensions}; do + ln -s -t $out/lib/firefox/distribution/extensions $i/* + done + ''; + + preferLocalBuild = true; + + # Let each plugin tell us (through its `mozillaPlugin') attribute + # where to find the plugin in its tree. + plugins = map (x: x + x.mozillaPlugin) plugins; + libs = lib.makeLibraryPath libs + ":" + lib.makeSearchPathOutput "lib" "lib64" libs; + gtk_modules = map (x: x + x.gtkModule) gtk_modules; + + passthru = { unwrapped = browser; }; + + disallowedRequisites = [ stdenv.cc ]; + + meta = browser.meta // { + description = + browser.meta.description + + " (with plugins: " + + lib.concatStrings (lib.intersperse ", " (map (x: x.name) plugins)) + + ")"; + hydraPlatforms = []; + priority = (browser.meta.priority or 0) - 1; # prefer wrapper over the package + }; + }; +in + lib.makeOverridable wrapper diff --git a/jeschli/5pkgs/firefox/font-fingerprint-defender/default.nix b/jeschli/5pkgs/firefox/font-fingerprint-defender/default.nix new file mode 100644 index 0000000..26751be --- /dev/null +++ b/jeschli/5pkgs/firefox/font-fingerprint-defender/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, unzip, jq, zip }: + +stdenv.mkDerivation rec { + pname = "font-fingerprint-defender-${version}"; + version = "0.1.0"; + + extid = "@font-fingerprint-defender"; + signed = false; + + src = fetchurl { + url = "https://addons.mozilla.org/firefox/downloads/file/3387637/font_fingerprint_defender-${version}-an+fx.xpi"; + sha256 = "1aidkvisnx6qd7hn2x756rvzmbnaz6laqbwq0j5yd86g1kc56dr0"; + }; + + phases = [ "buildPhase" ]; + + buildInputs = [ zip unzip jq ]; + + buildPhase = '' + mkdir -p $out/${extid} + unzip ${src} -d $out/${extid} + NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) + echo "$NEW_MANIFEST" > $out/${extid}/manifest.json + cd $out/${extid} + zip -r -FS $out/${extid}.xpi * + rm -r $out/${extid} + ''; + + meta = with stdenv.lib; { + description = "Font fingerprint defender firefox browser addon"; + homepage = https://mybrowseraddon.com/font-defender.html; + license = { + fullName = "Mozilla Public License Version 2.0"; + shortName = "moz2"; + spdxId = "mozilla-2.0"; + url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; + maintainers = []; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/jeschli/5pkgs/firefox/hopper/default.nix b/jeschli/5pkgs/firefox/hopper/default.nix new file mode 100644 index 0000000..569fc6a --- /dev/null +++ b/jeschli/5pkgs/firefox/hopper/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchurl, pkgs, makeWrapper, lib }: + +stdenv.mkDerivation rec { + name = "${pname}-${version}"; + pname = "hopper"; + version = "4.5.16"; + rev = "v${lib.versions.major version}"; + + src = fetchurl { + url = "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-${rev}-${version}-Linux.pkg.tar.xz"; + sha256 = "0gjnn7f6ibfx46k4bbj8ra7k04s0mrpq7316brgzks6x5yd1m584"; + }; + + sourceRoot = "."; + + ldLibraryPath = with pkgs; stdenv.lib.makeLibraryPath [ +libbsd.out libffi.out gmpxx.out python27Full.out python27Packages.libxml2.out qt5.qtbase zlib xlibs.libX11.out xorg_sys_opengl.out xlibs.libXrender.out gcc-unwrapped.lib + ]; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/lib + mkdir -p $out/share + cp $sourceRoot/opt/hopper-${rev}/bin/Hopper $out/bin/hopper + cp -r $sourceRoot/opt/hopper-${rev}/lib $out + cp -r $sourceRoot/usr/share $out/share + patchelf \ + --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 \ + $out/bin/hopper + # Details: https://nixos.wiki/wiki/Qt + wrapProgram $out/bin/hopper \ + --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \ + --suffix QT_PLUGIN_PATH : ${pkgs.qt5.qtbase}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins + ''; + + meta = { + homepage = "https://www.hopperapp.com/index.html"; + description = "A macOS and Linux Disassembler"; + license = stdenv.lib.licenses.unfree; + maintainers = [ stdenv.lib.maintainers.luis ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/jeschli/5pkgs/firefox/https-everywhere/default.nix b/jeschli/5pkgs/firefox/https-everywhere/default.nix new file mode 100644 index 0000000..66fede4 --- /dev/null +++ b/jeschli/5pkgs/firefox/https-everywhere/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "https-everywhere-${version}"; + version = "2019.6.27"; + + extid = "https-everywhere@eff.org"; + signed = true; + + src = fetchurl { + url = "https://addons.mozilla.org/firefox/downloads/file/3060290/https_everywhere-${version}-an+fx.xpi"; + sha256 = "0743lhn9phn7n6c0886h9ddn1n8vhzbl0vrw177zs43995aj3frp"; + }; + + phases = [ "installPhase" ]; + + installPhase = '' + install -D ${src} "$out/${extid}.xpi" + + ''; + + meta = { + description = "Https everywhere browser addon"; + homepage = https://www.eff.org/https-everywhere; + license = stdenv.lib.licenses.gpl2Plus; + maintainers = []; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/jeschli/5pkgs/firefox/pyocclient/default.nix b/jeschli/5pkgs/firefox/pyocclient/default.nix new file mode 100644 index 0000000..cd91f61 --- /dev/null +++ b/jeschli/5pkgs/firefox/pyocclient/default.nix @@ -0,0 +1,26 @@ +{ lib, python37Packages }: + +python37Packages.buildPythonPackage rec { + pname = "pyocclient"; + version = "0.4"; + + src = python37Packages.fetchPypi { + inherit pname version; + sha256 = "19k3slrk2idixsdw61in9a3jxglvkigkn5kvwl37lj8hrwr4yq6q"; + }; + + doCheck = false; + + propagatedBuildInputs = with python37Packages; [ + requests + six + ]; + + meta = with lib; { + homepage = https://github.com/owncloud/pyocclient/; + description = "Nextcloud / Owncloud library for python"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + }; + +} diff --git a/jeschli/5pkgs/firefox/rmount/default.nix b/jeschli/5pkgs/firefox/rmount/default.nix new file mode 100644 index 0000000..22631f4 --- /dev/null +++ b/jeschli/5pkgs/firefox/rmount/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchgit, makeWrapper, lib, pkgs ? import {} }: +with pkgs; + +stdenv.mkDerivation rec { + name = "rmount-${version}"; + version = "1.0.1"; + rev = "v${version}"; + + src = fetchgit { + rev = "9df124780d2e66f01c70afaecf92090669c5ffb6"; + url = "https://github.com/Luis-Hebendanz/rmount"; + sha256 = "0ydb6sspfnfa3y6gg1r8sk4r58il6636lpqwb2rw7dzmb4b8hpd2"; + }; + + buildInputs = [ stdenv makeWrapper ]; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/man/man1 + cp ${src}/rmount.man $out/share/man/man1/rmount.1 + cp ${src}/rmount.bash $out/bin/rmount-noenv + cp ${src}/config.json $out/share/config.json + chmod +x $out/bin/rmount-noenv + + makeWrapper $out/bin/rmount-noenv $out/bin/rmount \ + --prefix PATH : ${lib.makeBinPath [ nmap jq cifs-utils sshfs ]} + ''; + + meta = { + homepage = "https://github.com/Luis-Hebendanz/rmount"; + description = "Remote mount utility which parses a json file"; + license = stdenv.lib.licenses.mit; + }; +} diff --git a/jeschli/5pkgs/firefox/ublock-origin/default.nix b/jeschli/5pkgs/firefox/ublock-origin/default.nix new file mode 100644 index 0000000..002fa3e --- /dev/null +++ b/jeschli/5pkgs/firefox/ublock-origin/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "ublock-origin-${version}"; + version = "1.21.2"; + + extid = "uBlock0@raymondhill.net"; + signed = true; + + src = fetchurl { + url = "https://addons.mozilla.org/firefox/downloads/file/3361355/ublock_origin-${version}-an+fx.xpi"; + sha256 = "0ypdq3z61mrymknl37qlq6379bx9f2fsgbgr0czbhqs9f2vwszkc"; + }; + + phases = [ "installPhase" ]; + + installPhase = '' + install -D ${src} "$out/${extid}.xpi" + ''; + + meta = with stdenv.lib; { + description = "ublock origin firefox browser addon"; + homepage = https://github.com/gorhill/uBlock; + license = licenses.gpl3; + maintainers = []; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/jeschli/5pkgs/firefox/user-agent-switcher/default.nix b/jeschli/5pkgs/firefox/user-agent-switcher/default.nix new file mode 100644 index 0000000..c96f111 --- /dev/null +++ b/jeschli/5pkgs/firefox/user-agent-switcher/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, unzip, jq, zip }: + +stdenv.mkDerivation rec { + pname = "user-agent-switcher-${version}"; + version = "0.3.2"; + + extid = "@user-agent-switcher"; + signed = false; + + src = fetchurl { + url = "https://addons.mozilla.org/firefox/downloads/file/3370255/user_agent_switcher_and_manager-${version}-an+fx.xpi"; + sha256 = "0lrw1xf6fsxr47bifkayfxpysv8s2p9ghmbmw2s7ymhrgy42i6v5"; + }; + + phases = [ "buildPhase" ]; + + buildInputs = [ zip unzip jq ]; + + buildPhase = '' + mkdir -p $out/${extid} + unzip ${src} -d $out/${extid} + NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) + echo "$NEW_MANIFEST" > $out/${extid}/manifest.json + cd $out/${extid} + zip -r -FS $out/${extid}.xpi * + rm -r $out/${extid} + ''; + + meta = with stdenv.lib; { + description = "User agent switcher"; + homepage = https://add0n.com/useragent-switcher.html; + license = { + fullName = "Mozilla Public License Version 2.0"; + shortName = "moz2"; + spdxId = "mozilla-2.0"; + url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; + maintainers = []; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/jeschli/5pkgs/firefox/webgl-fingerprint-defender/default.nix b/jeschli/5pkgs/firefox/webgl-fingerprint-defender/default.nix new file mode 100644 index 0000000..4e608d1 --- /dev/null +++ b/jeschli/5pkgs/firefox/webgl-fingerprint-defender/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, unzip, jq, zip }: + +stdenv.mkDerivation rec { + pname = "webgl-fingerprint-defender-${version}"; + version = "0.1.2"; + + extid = "@webgl-fingerprint-defender"; + signed = false; + + src = fetchurl { + url = "https://addons.mozilla.org/firefox/downloads/file/3362869/webgl_fingerprint_defender-${version}-an+fx.xpi"; + sha256 = "06hfr5hxr4qw0jx6i9fi9gdk5211z08brnvqj2jlmpyc3dwl4pif"; + }; + + phases = [ "buildPhase" ]; + + buildInputs = [ zip unzip jq ]; + + buildPhase = '' + mkdir -p $out/${extid} + unzip ${src} -d $out/${extid} + NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) + echo "$NEW_MANIFEST" > $out/${extid}/manifest.json + cd $out/${extid} + zip -r -FS $out/${extid}.xpi * + rm -r $out/${extid} + ''; + + meta = with stdenv.lib; { + description = "Canvas defender firefox browser addon"; + homepage = https://mybrowseraddon.com/webgl-defender.html; + license = { + fullName = "Mozilla Public License Version 2.0"; + shortName = "moz2"; + spdxId = "mozilla-2.0"; + url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; + maintainers = []; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/jeschli/5pkgs/firefox/wl-clipboard/default.nix b/jeschli/5pkgs/firefox/wl-clipboard/default.nix new file mode 100644 index 0000000..349d910 --- /dev/null +++ b/jeschli/5pkgs/firefox/wl-clipboard/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig +, wayland, wayland-protocols }: + +stdenv.mkDerivation rec { + pname = "wl-clipboard"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "bugaevc"; + repo = "wl-clipboard"; + rev = "v${version}"; + sha256 = "0c4w87ipsw09aii34szj9p0xfy0m00wyjpll0gb0aqmwa60p0c5d"; + }; + + nativeBuildInputs = [ meson ninja pkgconfig wayland-protocols ]; + buildInputs = [ wayland ]; + + meta = with stdenv.lib; { + description = "Command-line copy/paste utilities for Wayland"; + homepage = https://github.com/bugaevc/wl-clipboard; + license = licenses.gpl3; + maintainers = with maintainers; [ dywedir ]; + platforms = platforms.linux; + }; +} -- cgit v1.3.1 From f770c3e8e713873f904e07309334c5cdb6d7ad0b Mon Sep 17 00:00:00 2001 From: Jeschli Date: Thu, 23 Apr 2020 20:33:45 +0200 Subject: j i3: hardware.brightnessctl.enable -> systemPackages --- jeschli/2configs/i3.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jeschli/2configs/i3.nix b/jeschli/2configs/i3.nix index f062dae..1a6c492 100644 --- a/jeschli/2configs/i3.nix +++ b/jeschli/2configs/i3.nix @@ -232,11 +232,10 @@ services.xserver.enable = true; services.xserver.displayManager.lightdm.enable = true; # Allow users in video group to change brightness - hardware.brightnessctl.enable = true; - environment.systemPackages = with pkgs; [ rofi # Dmenu replacement acpilight # Replacement for xbacklight + brightnessctl arandr # Xrandr gui feh wirelesstools # To get wireless statistics -- cgit v1.3.1