├── AUTHORS.md ├── po ├── LINGUAS ├── POTFILES ├── meson.build ├── com.github.calo001.luna.pot ├── de.po ├── fr.po ├── es.po ├── pt_br.po ├── nl_NL.po ├── hr.po ├── pt.po └── it.po ├── resources ├── paypalme.png └── become_a_patron_button.png ├── data ├── images │ ├── screenshot_1.png │ ├── screenshot_2.png │ ├── screenshot_3.png │ ├── screenshot_4.png │ ├── screenshot_5.png │ ├── com.github.calo001.luna.png │ └── icons │ │ ├── 16 │ │ └── com.github.calo001.luna.svg │ │ ├── 24 │ │ └── com.github.calo001.luna.svg │ │ ├── 32 │ │ └── com.github.calo001.luna.svg │ │ └── 48 │ │ └── com.github.calo001.luna.svg ├── com.github.calo001.luna.desktop.in ├── com.github.calo001.luna.gschema.xml ├── css │ ├── colors.css │ ├── style_red.css │ ├── style_blue.css │ ├── style_coco.css │ ├── style_green.css │ ├── style_pink.css │ ├── style_teal.css │ ├── style_orange.css │ ├── style_purple.css │ ├── style_gradient_blue_green.css │ ├── style_gradient_purple_red.css │ ├── style_white.css │ ├── style_yellow.css │ ├── style_dark.css │ ├── style_dark_transparent.css │ ├── style_light_transparent.css │ ├── style_dark_semitrans.css │ ├── style_light_semitrans.css │ ├── style_gradient_pride.css │ ├── color_buttons.css │ └── main.css ├── meson.build ├── com.github.calo001.luna.gresource.xml └── com.github.calo001.luna.appdata.xml.in ├── .github ├── FUNDING.yml └── workflows │ └── main.yml ├── .gitignore ├── .editorconfig ├── meson └── post_install.py ├── Dockerfile ├── src ├── meson.build ├── Main.vala ├── enums │ ├── Day.vala │ ├── Color.vala │ └── Month.vala ├── Application.vala ├── controllers │ └── AppController.vala ├── configs │ ├── Settings.vala │ ├── Strings.vala │ └── Constants.vala ├── views │ ├── TwelveGridView.vala │ ├── DaysRow.vala │ ├── CalendarView.vala │ ├── BottomBar.vala │ └── ColorSelector.vala ├── Window.vala └── widgets │ └── HeaderBar.vala ├── com.github.calo001.luna.json ├── meson.build ├── app └── README.md /AUTHORS.md: -------------------------------------------------------------------------------- 1 | Carlos Lopez -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | de 2 | es 3 | fr 4 | hr 5 | pt_br 6 | pt 7 | nl_NL 8 | it 9 | -------------------------------------------------------------------------------- /resources/paypalme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calo001/luna/HEAD/resources/paypalme.png -------------------------------------------------------------------------------- /data/images/screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calo001/luna/HEAD/data/images/screenshot_1.png -------------------------------------------------------------------------------- /data/images/screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calo001/luna/HEAD/data/images/screenshot_2.png -------------------------------------------------------------------------------- /data/images/screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calo001/luna/HEAD/data/images/screenshot_3.png -------------------------------------------------------------------------------- /data/images/screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calo001/luna/HEAD/data/images/screenshot_4.png -------------------------------------------------------------------------------- /data/images/screenshot_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calo001/luna/HEAD/data/images/screenshot_5.png -------------------------------------------------------------------------------- /resources/become_a_patron_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calo001/luna/HEAD/resources/become_a_patron_button.png -------------------------------------------------------------------------------- /data/images/com.github.calo001.luna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/calo001/luna/HEAD/data/images/com.github.calo001.luna.png -------------------------------------------------------------------------------- /po/POTFILES: -------------------------------------------------------------------------------- 1 | src/configs/Strings.vala 2 | data/com.github.calo001.luna.appdata.xml.in 3 | data/com.github.calo001.luna.desktop.in -------------------------------------------------------------------------------- /po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext(meson.project_name(), 2 | args: ['--directory='+meson.source_root(), '--from-code=UTF-8'] 3 | ) -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | patreon: carloslr 4 | custom: https://www.paypal.me/calo001 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/* 2 | debian/build/* 3 | debian/com.github.calo001.luna.debhelper.log 4 | debian/com.github.calo001.luna.substvars 5 | debian/com.github.calo001.luna/ 6 | debian/debhelper-build-stamp 7 | debian/files 8 | .flatpak-builder/ -------------------------------------------------------------------------------- /data/com.github.calo001.luna.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Luna 3 | Comment=An amazing calendar widget 4 | Icon=com.github.calo001.luna 5 | Exec=com.github.calo001.luna 6 | Terminal=false 7 | Type=Application 8 | StartupNotify=true 9 | Categories=Utility; 10 | Keywords=calendar;day;month;year; 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig 2 | root = true 3 | 4 | # elementary defaults 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = tab 9 | indent_style = space 10 | insert_final_newline = true 11 | max_line_length = 80 12 | tab_width = 4 13 | 14 | [{*.xml,*.xml.in,*.yml}] 15 | tab_width = 2 -------------------------------------------------------------------------------- /meson/post_install.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import os 4 | import subprocess 5 | 6 | schemadir = os.path.join(os.environ['MESON_INSTALL_PREFIX'], 'share', 'glib-2.0', 'schemas') 7 | 8 | if not os.environ.get('DESTDIR'): 9 | print('Compiling gsettings schemas...') 10 | subprocess.call(['glib-compile-schemas', schemadir], shell=False) -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM elementary/docker:odin-unstable 2 | ARG DEBIAN_FRONTEND=noninteractive 3 | 4 | RUN apt-get update 5 | 6 | RUN apt-get --assume-yes install libsoup2.4-dev 7 | 8 | COPY . /luna 9 | 10 | WORKDIR /luna 11 | 12 | RUN ls /luna/po 13 | 14 | RUN meson build --prefix=/usr && \ 15 | cd build && \ 16 | ninja com.github.calo001.luna-pot && \ 17 | ninja com.github.calo001.luna-update-po 18 | 19 | RUN ls /luna/po -------------------------------------------------------------------------------- /src/meson.build: -------------------------------------------------------------------------------- 1 | sources += files( 2 | 'configs/Constants.vala', 3 | 'configs/Settings.vala', 4 | 'configs/Strings.vala', 5 | 6 | 'controllers/AppController.vala', 7 | 8 | 'views/AppView.vala', 9 | 'views/CalendarView.vala', 10 | 'views/TwelveGridView.vala', 11 | 'views/DaysRow.vala', 12 | 'views/ColorSelector.vala', 13 | 'views/BottomBar.vala', 14 | 15 | 'enums/Day.vala', 16 | 'enums/Month.vala', 17 | 'enums/Color.vala', 18 | 19 | 'widgets/HeaderBar.vala', 20 | 21 | 'Application.vala', 22 | 'Main.vala', 23 | 'Window.vala' 24 | ) 25 | -------------------------------------------------------------------------------- /data/com.github.calo001.luna.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -1 7 | Most recent x position of Luna 8 | Most recent x position of Luna 9 | 10 | 11 | 12 | -1 13 | Most recent y position of Luna 14 | Most recent y position of Luna 15 | 16 | 17 | 18 | "white" 19 | Most recent color theme of Luna 20 | Most recent color theme of Luna 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /com.github.calo001.luna.json: -------------------------------------------------------------------------------- 1 | { 2 | "app-id" : "com.github.calo001.luna", 3 | "runtime": "io.elementary.Platform", 4 | "runtime-version": "6", 5 | "sdk": "io.elementary.Sdk", 6 | "command" : "com.github.calo001.luna", 7 | "finish-args" : [ 8 | "--share=ipc", "--socket=x11", 9 | "--socket=wayland" 10 | ], 11 | "build-options" : { 12 | "cflags" : "-O2 -g", 13 | "cxxflags" : "-O2 -g", 14 | "env" : { 15 | } 16 | }, 17 | "cleanup" : [ 18 | "/include", 19 | "/lib/pkgconfig", 20 | "/man", 21 | "/share/doc", 22 | "/share/gtk-doc", 23 | "/share/man", 24 | "/share/pkgconfig", 25 | "/share/vala", 26 | "*.la", 27 | "*.a" 28 | ], 29 | "modules" : [ 30 | { 31 | "name" : "Luna", 32 | "buildsystem" : "meson", 33 | "sources" : [ 34 | { 35 | "type": "dir", 36 | "path": "." 37 | } 38 | ] 39 | } 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /src/Main.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | public class Main { 20 | 21 | /** 22 | * Main method. 23 | * 24 | * @see App.Application 25 | * @return {@code int} 26 | * @since 1.0.0 27 | */ 28 | public static int main (string [] args) { 29 | Gtk.init (ref args); 30 | var app = new App.Application (); 31 | return app.run (args); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /meson.build: -------------------------------------------------------------------------------- 1 | project('com.github.calo001.luna', ['vala', 'c'], 2 | version : '1.1.6', 3 | license: 'GPL-3.0' 4 | ) 5 | 6 | add_project_arguments([ 7 | '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()) 8 | ], 9 | language: 'c', 10 | ) 11 | 12 | gnome = import('gnome') 13 | i18n = import('i18n') 14 | 15 | gresource = gnome.compile_resources( 16 | 'as-resources', 'data/com.github.calo001.luna.gresource.xml', 17 | source_dir: 'data', 18 | c_name: 'as' 19 | ) 20 | 21 | conf = configuration_data() 22 | conf.set_quoted('GETTEXT_PACKAGE', meson.project_name()) 23 | configure_file(output: 'config.h', configuration: conf) 24 | config_h_dir = include_directories('.') 25 | 26 | c_args = [ 27 | '-include', 'config.h' 28 | ] 29 | 30 | sources = files() 31 | 32 | subdir('data') 33 | subdir('po') 34 | subdir('src') 35 | 36 | dependencies = [ 37 | dependency('gobject-2.0'), 38 | dependency('glib-2.0'), 39 | dependency('granite'), 40 | dependency('gtk+-3.0'), 41 | ] 42 | 43 | e = executable('com.github.calo001.luna', 44 | sources, 45 | gresource, 46 | c_args: c_args, 47 | dependencies: dependencies, 48 | install : true 49 | ) 50 | 51 | meson.add_install_script('meson/post_install.py') 52 | -------------------------------------------------------------------------------- /src/enums/Day.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | using App.Configs; 20 | namespace App.Enums { 21 | public enum Day { 22 | MONDAY, 23 | TUESDAY, 24 | WEDNESDAY, 25 | THURSDAY, 26 | FRIDAY, 27 | SATURDAY, 28 | SUNDAY; 29 | 30 | public string to_string () { 31 | switch (this) { 32 | case MONDAY: return S.MONDAY; 33 | case TUESDAY: return S.TUESDAY; 34 | case WEDNESDAY: return S.WEDNESDAY; 35 | case THURSDAY: return S.THURSDAY; 36 | case FRIDAY: return S.FRIDAY; 37 | case SATURDAY: return S.SATURDAT; 38 | case SUNDAY: return S.SUNDAY; 39 | default: assert_not_reached (); 40 | } 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /data/css/colors.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @define-color luna_white #FAFAFA; 20 | @define-color luna_black #1A1A1A; 21 | @define-color luna_red #C6262E; 22 | @define-color luna_pink #db36a4; 23 | @define-color luna_orange #F37329; 24 | @define-color luna_yellow #F9C440; 25 | @define-color luna_green #68B723; 26 | @define-color luna_teal #018B7F; 27 | @define-color luna_blue #3689E6; 28 | @define-color luna_purple #7239b3; 29 | @define-color luna_coco #715344; 30 | 31 | @define-color white_clear #FFFFFF; 32 | @define-color black_dark #000000; 33 | 34 | /* @define-color luna_gradient_blue_green linear-gradient(to right, #00F160, #0575E4); 35 | @define-color luna_gradient_purple_red linear-gradient(to right, #7B4396, #DB2430); 36 | @define-color luna_gradient_pride linear-gradient(to right, #c6262e, #f37329, #f9c440, #68b723, #3689e6); 37 | */ 38 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | # This workflow will run for any pull request or pushed commit 4 | on: [push, pull_request] 5 | 6 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 7 | jobs: 8 | # This workflow contains a single job called "flatpak" 9 | flatpak: 10 | # The type of runner that the job will run on 11 | runs-on: ubuntu-latest 12 | 13 | # This job runs in a special container designed for building Flatpaks for AppCenter 14 | container: 15 | image: ghcr.io/elementary/flatpak-platform/runtime:6 16 | options: --privileged 17 | 18 | # Steps represent a sequence of tasks that will be executed as part of the job 19 | steps: 20 | # Checks-out your repository under $GITHUB_WORKSPACE, so the job can access it 21 | - uses: actions/checkout@v2 22 | 23 | # Builds your flatpak manifest using the Flatpak Builder action 24 | - uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v3 25 | with: 26 | # This is the name of the Bundle file we're building and can be anything you like 27 | bundle: Luna.flatpak 28 | # This uses your app's RDNN ID 29 | manifest-path: com.github.calo001.luna.json 30 | 31 | # You can automatically run any of the tests you've created as part of this workflow 32 | run-tests: true 33 | 34 | # These lines specify the location of the elementary Runtime and Sdk 35 | repository-name: appcenter 36 | repository-url: https://flatpak.elementary.io/repo.flatpakrepo 37 | cache-key: "flatpak-builder-${{ github.sha }}" -------------------------------------------------------------------------------- /data/css/style_red.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary @luna_red; 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .label-today { 43 | background: @colorAccent; 44 | color: @myColorPrimary; 45 | border-radius: 50%; 46 | } -------------------------------------------------------------------------------- /data/css/style_blue.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary @luna_blue; 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.3); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .label-today { 43 | background: @colorAccent; 44 | color: @myColorPrimary; 45 | border-radius: 50%; 46 | } -------------------------------------------------------------------------------- /data/css/style_coco.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary @luna_coco; 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .label-today { 43 | background: @colorAccent; 44 | color: @myColorPrimary; 45 | border-radius: 50%; 46 | } -------------------------------------------------------------------------------- /data/css/style_green.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary @luna_green; 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .label-today { 43 | background: @colorAccent; 44 | color: @myColorPrimary; 45 | border-radius: 50%; 46 | } -------------------------------------------------------------------------------- /data/css/style_pink.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary @luna_pink; 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .label-today { 43 | background: @colorAccent; 44 | color: @myColorPrimary; 45 | border-radius: 50%; 46 | } -------------------------------------------------------------------------------- /data/css/style_teal.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary @luna_teal; 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.3); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .label-today { 43 | background: @colorAccent; 44 | color: @myColorPrimary; 45 | border-radius: 50%; 46 | } -------------------------------------------------------------------------------- /data/css/style_orange.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary @luna_orange; 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .label-today { 43 | background: @colorAccent; 44 | color: @myColorPrimary; 45 | border-radius: 50%; 46 | } -------------------------------------------------------------------------------- /data/css/style_purple.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary @luna_purple; 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .label-today { 43 | background: @colorAccent; 44 | color: @myColorPrimary; 45 | border-radius: 50%; 46 | } -------------------------------------------------------------------------------- /data/meson.build: -------------------------------------------------------------------------------- 1 | icon_sizes = ['16','24','32', '48', '64', '128'] 2 | 3 | foreach i : icon_sizes 4 | install_data( 5 | join_paths('images', 'icons', i, meson.project_name() + '.svg'), 6 | install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', i + 'x' + i, 'apps') 7 | ) 8 | endforeach 9 | 10 | install_data( 11 | join_paths('images', meson.project_name() + '.svg'), 12 | install_dir: join_paths(get_option('datadir'), 'Luna', 'images') 13 | ) 14 | 15 | install_data( 16 | join_paths('images', meson.project_name() + '.png'), 17 | install_dir: join_paths(get_option('datadir'), 'pixmaps') 18 | ) 19 | 20 | #Translate and install our .desktop file 21 | i18n.merge_file( 22 | input: join_paths(meson.project_name() + '.desktop.in'), 23 | output: meson.project_name() + '.desktop', 24 | po_dir: join_paths(meson.source_root(), 'po'), 25 | type: 'desktop', 26 | install: true, 27 | install_dir: join_paths(get_option('datadir'), 'applications') 28 | ) 29 | 30 | #Translate and install our .appdata file 31 | i18n.merge_file( 32 | input: join_paths(meson.project_name() + '.appdata.xml.in'), 33 | output: meson.project_name() + '.appdata.xml', 34 | po_dir: join_paths(meson.source_root(), 'po'), 35 | install: true, 36 | install_dir: join_paths(get_option('datadir'), 'metainfo') 37 | ) 38 | 39 | #install_data( 40 | # meson.project_name() + '.desktop', 41 | # install_dir: join_paths(get_option('datadir'), 'applications') 42 | #) 43 | 44 | #install_data( 45 | # meson.project_name() + '.appdata.xml', 46 | # install_dir: join_paths(get_option('datadir'), 'metainfo') 47 | #) 48 | 49 | install_data( 50 | meson.project_name() + '.gschema.xml', 51 | install_dir: join_paths(get_option('datadir'), 'glib-2.0', 'schemas') 52 | ) -------------------------------------------------------------------------------- /data/css/style_gradient_blue_green.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary #03B1A6; 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.3); 29 | 30 | .titlebar, .widget_background { 31 | background: linear-gradient(to right, #02C491, #0575e6); 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .label-today { 43 | background: @colorAccent; 44 | color: @myColorPrimary; 45 | border-radius: 50%; 46 | } -------------------------------------------------------------------------------- /data/css/style_gradient_purple_red.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary #7b4397; 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 29 | 30 | .titlebar, .widget_background { 31 | background: linear-gradient(to right, #7b4397, #B63058); 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .label-today { 43 | background: @colorAccent; 44 | color: @myColorPrimary; 45 | border-radius: 50%; 46 | } -------------------------------------------------------------------------------- /data/css/style_white.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary @luna_white; 24 | @define-color textColorPrimary @black_dark; 25 | @define-color colorAccent @black_dark; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .gotoday { 43 | background: black; 44 | } 45 | 46 | .label-today { 47 | background: @colorAccent; 48 | color: @myColorPrimary; 49 | border-radius: 50%; 50 | } -------------------------------------------------------------------------------- /data/css/style_yellow.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary @luna_yellow; 24 | @define-color textColorPrimary @black_dark; 25 | @define-color colorAccent @black_dark; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .gotoday { 43 | background: @colorAccent; 44 | color: @myColorPrimary; 45 | } 46 | 47 | .label-today { 48 | background: @colorAccent; 49 | color: @myColorPrimary; 50 | border-radius: 50%; 51 | } -------------------------------------------------------------------------------- /data/css/style_dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary @luna_black; 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@white_clear, 0.2); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | window decoration { 35 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 36 | } 37 | 38 | window decoration:backdrop { 39 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 40 | } 41 | 42 | .label-today { 43 | background: @colorAccent; 44 | color: @myColorPrimary; 45 | border-radius: 50%; 46 | } 47 | 48 | .topbar { 49 | background: rgba(255,255,255,0.05); 50 | } 51 | 52 | .buttombar { 53 | background: rgba(255,255,255, 0.05); 54 | } -------------------------------------------------------------------------------- /app: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | arg=$1 4 | 5 | function initialize { 6 | meson build --prefix=/usr 7 | result=$? 8 | 9 | if [ $result -gt 0 ]; then 10 | echo "Unable to initialize, please review log" 11 | exit 1 12 | fi 13 | 14 | cd build 15 | 16 | ninja 17 | 18 | result=$? 19 | 20 | if [ $result -gt 0 ]; then 21 | echo "Unable to build project, please review log" 22 | exit 2 23 | fi 24 | } 25 | 26 | case $1 in 27 | "clean") 28 | sudo rm -rf ./build 29 | ;; 30 | "generate-i18n") 31 | initialize 32 | ninja com.github.calo001.luna-pot 33 | ninja com.github.calo001.luna-update-po 34 | ;; 35 | "install") 36 | initialize 37 | sudo ninja install 38 | ;; 39 | "install-deps") 40 | output=$((dpkg-checkbuilddeps ) 2>&1) 41 | result=$? 42 | 43 | if [ $result -eq 0 ]; then 44 | echo "All dependencies are installed" 45 | exit 0 46 | fi 47 | 48 | replace="sudo apt install" 49 | pattern="(\([>=<0-9. ]+\))+" 50 | sudo_replace=${output/dpkg-checkbuilddeps: error: Unmet build dependencies:/$replace} 51 | command=$(sed -r -e "s/$pattern//g" <<< "$sudo_replace") 52 | 53 | $command 54 | ;; 55 | "run") 56 | initialize 57 | ./com.github.calo001.luna "${@:2}" 58 | ;; 59 | "uninstall") 60 | initialize 61 | sudo ninja uninstall 62 | ;; 63 | *) 64 | echo "Usage:" 65 | echo " ./app [OPTION]" 66 | echo "" 67 | echo "Options:" 68 | echo " clean Removes build directories (can require sudo)" 69 | echo " generate-i18n Generates .pot and .po files for i18n (multi-language support)" 70 | echo " install Builds and installs application to the system (requires sudo)" 71 | echo " install-deps Installs missing build dependencies" 72 | echo " run Builds and runs the application" 73 | echo " uninstall Removes the application from the system (requires sudo)" 74 | ;; 75 | esac 76 | -------------------------------------------------------------------------------- /data/css/style_dark_transparent.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary rgba (0,0,0,0); 24 | @define-color textColorPrimary @black_dark; 25 | @define-color colorAccent @black_dark; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | .label-day:hover { 35 | color: @textColorPrimary; 36 | background: @colorAccentTransparent; 37 | } 38 | 39 | .label-today { 40 | background: @colorAccentTransparent; 41 | color: @colorAccent; 42 | border-radius: 50%; 43 | } 44 | 45 | window decoration { 46 | box-shadow: 0 0 0 1px rgba(0,0,0,0), 0 14px 28px rgba(0,0,0,0), 0 10px 10px rgba(0,0,0,0); 47 | } 48 | 49 | window decoration:backdrop { 50 | box-shadow: 0 0 0 1px rgba(0,0,0,0), 0 3px 6px rgba (0,0,0,0), 0 3px 6px rgba(0,0,0,0), 0 14px 28px rgba(0,0,0,0); 51 | } 52 | 53 | .gotoday { 54 | color: @textColorPrimary; 55 | background: @colorAccentTransparent; 56 | } -------------------------------------------------------------------------------- /data/css/style_light_transparent.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary rgba (0,0,0,0); 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(255,255,255,0.1); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 29 | 30 | .titlebar, .widget_background { 31 | background: @myColorPrimary; 32 | } 33 | 34 | .label-day:hover { 35 | color: @textColorPrimary; 36 | background: @colorAccentTransparent; 37 | } 38 | 39 | .label-today { 40 | background: @colorAccentTransparent; 41 | color: @colorAccent; 42 | border-radius: 50%; 43 | } 44 | 45 | .button_colors { 46 | box-shadow: 0px 0px 2px 2px rgba(0,0,0,0.1); 47 | } 48 | 49 | window decoration { 50 | box-shadow: 0 0 0 1px rgba(0,0,0,0), 0 14px 28px rgba(0,0,0,0), 0 10px 10px rgba(0,0,0,0); 51 | } 52 | 53 | window decoration:backdrop { 54 | box-shadow: 0 0 0 1px rgba(0,0,0,0), 0 3px 6px rgba (0,0,0,0), 0 3px 6px rgba(0,0,0,0), 0 14px 28px rgba(0,0,0,0); 55 | } 56 | 57 | .gotoday { 58 | color: @textColorPrimary; 59 | background: @colorAccentTransparent; 60 | } -------------------------------------------------------------------------------- /data/css/style_dark_semitrans.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary rgba (0,0,0,0); 24 | @define-color textColorPrimary @white_clear; 25 | @define-color colorAccent @white_clear; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.4); 27 | 28 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 29 | 30 | .titlebar, .widget_background { 31 | background: rgba (0,0,0,0.6); 32 | } 33 | 34 | .label-day:hover { 35 | color: @textColorPrimary; 36 | background: @colorAccentTransparent; 37 | } 38 | 39 | .label-today { 40 | background: @colorAccentTransparent; 41 | color: @colorAccent; 42 | border-radius: 50%; 43 | } 44 | 45 | .button_colors { 46 | box-shadow: 0px 0px 2px 2px rgba(0,0,0,0.1); 47 | } 48 | 49 | window decoration { 50 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 51 | } 52 | 53 | window decoration:backdrop { 54 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 55 | } 56 | 57 | .gotoday { 58 | color: @textColorPrimary; 59 | background: @colorAccentTransparent; 60 | } -------------------------------------------------------------------------------- /data/css/style_light_semitrans.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary rgba (0,0,0,0); 24 | @define-color textColorPrimary @black_dark; 25 | @define-color colorAccent @black_dark; 26 | @define-color colorAccentTransparent rgba(0,0,0,0.4); 27 | @define-color colorAccentTransparentToday rgba(255,255,255,0.4); 28 | 29 | @define-color bg_highlight_color shade (@myColorPrimary, 1.4); 30 | 31 | .titlebar, .widget_background { 32 | background: rgba (255,255,255,0.6); 33 | } 34 | 35 | .label-day:hover { 36 | color: @textColorPrimary; 37 | background: @colorAccentTransparent; 38 | } 39 | 40 | .label-today { 41 | background: @colorAccentTransparentToday; 42 | color: @colorAccent; 43 | border-radius: 50%; 44 | } 45 | 46 | /*.csd {*/ 47 | window decoration { 48 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 49 | } 50 | 51 | /*.csd:backdrop {*/ 52 | window decoration:backdrop { 53 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 54 | } 55 | 56 | .gotoday { 57 | color: @textColorPrimary; 58 | background: @colorAccentTransparentToday; 59 | } -------------------------------------------------------------------------------- /src/Application.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | using App.Configs; 20 | using App.Controllers; 21 | 22 | namespace App { 23 | 24 | /** 25 | * The {@code Application} class is a foundation for all granite-based applications. 26 | * 27 | * @see Granite.Application 28 | * @since 1.0.0 29 | */ 30 | public class Application : Granite.Application { 31 | 32 | public AppController controller; 33 | 34 | /** 35 | * Constructs a new {@code Application} object. 36 | */ 37 | public Application () { 38 | Object ( 39 | application_id: Constants.ID, 40 | flags: ApplicationFlags.FLAGS_NONE 41 | ); 42 | 43 | var quit_action = new SimpleAction ("quit", null); 44 | quit_action.activate.connect (() => { 45 | controller.quit (); 46 | }); 47 | 48 | add_action (quit_action); 49 | set_accels_for_action ("app.quit", {"Escape"}); 50 | } 51 | 52 | /** 53 | * Handle attempts to start up the application 54 | * @return {@code void} 55 | */ 56 | public override void activate () { 57 | if (controller == null) { 58 | controller = new AppController (this); 59 | } 60 | 61 | controller.activate (); 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/controllers/AppController.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | using App.Views; 20 | using App.Widgets; 21 | 22 | namespace App.Controllers { 23 | 24 | /** 25 | * The {@code AppController} class. 26 | * 27 | * @since 1.0.0 28 | */ 29 | public class AppController { 30 | 31 | private Gtk.Application application; 32 | private AppView app_view; 33 | private Window window { get; private set; default = null; } 34 | 35 | /** 36 | * Constructs a new {@code AppController} object. 37 | */ 38 | public AppController (Gtk.Application application) { 39 | var header = new HeaderBar (); 40 | 41 | this.application = application; 42 | this.window = new Window (this.application); 43 | this.app_view = new AppView (header); 44 | this.window.set_titlebar (header); 45 | this.window.add (this.app_view); 46 | this.application.add_window (window); 47 | 48 | this.app_view.close_clicked.connect( ()=> { 49 | quit (); 50 | }); 51 | } 52 | 53 | public void activate () { 54 | window.show_all (); 55 | app_view.activate (); 56 | } 57 | 58 | public void quit () { 59 | window.destroy (); 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /data/css/style_gradient_pride.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | @import url("/com/github/calo001/luna/css/main.css"); 20 | @import url("/com/github/calo001/luna/css/colors.css"); 21 | @import url("/com/github/calo001/luna/css/color_buttons.css"); 22 | 23 | @define-color myColorPrimary #68b723; 24 | /*@define-color textColorPrimary @black_dark;*/ 25 | @define-color textColorPrimary @white_clear; 26 | @define-color colorAccent @white_clear; 27 | @define-color colorAccentTransparent rgba(0,0,0,0.1); 28 | 29 | @define-color bg_highlight_color shade (@white_clear, 0.6); 30 | 31 | .label-today { 32 | color: @black_dark; 33 | } 34 | 35 | .titlebar, .widget_background { 36 | background: linear-gradient(90deg, 37 | #db002a, 38 | #db002a 14.28%, 39 | #ff43aa 14.28%, 40 | #ff43aa 28.56%, 41 | #f47600 28.56%, 42 | #f47600 42.84%, 43 | #f4ca00 42.84%, 44 | #f4ca00 57.12%, 45 | #00b74b 57.12%, 46 | #00b74b 72.4%, 47 | #435db6 72.4%, 48 | #435db6 86.68%, 49 | #68008b 86.68%, 50 | #68008b); 51 | } 52 | 53 | window decoration { 54 | box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.35), 0 10px 10px rgba(0,0,0,0.22); 55 | } 56 | 57 | window decoration:backdrop { 58 | box-shadow: 0 0 0 1px rgba(0,0,0,0.2), 0 3px 6px rgba (0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23), 0 14px 28px rgba(0,0,0,0); 59 | } 60 | 61 | .label-today { 62 | background: @colorAccent; 63 | color: @myColorPrimary; 64 | border-radius: 50%; 65 | } -------------------------------------------------------------------------------- /src/configs/Settings.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | 19 | namespace App.Configs { 20 | 21 | /** 22 | * The {@code Settings} class is responsible for defining all 23 | * the texts that are displayed in the application and must be translated. 24 | * 25 | * @see Granite.Services.Settings 26 | * @since 1.0.0 27 | */ 28 | public class Settings : Granite.Services.Settings { 29 | 30 | /** 31 | * This static property represents the {@code Settings} type. 32 | */ 33 | private static Settings? instance; 34 | 35 | /** 36 | * This property will represent the location x of the screen. 37 | * Variable of type {@code int} as declared. 38 | */ 39 | public int window_x { get; set; } 40 | 41 | /** 42 | * This property will represent the location y of the screen. 43 | * Variable of type {@code int} as declared. 44 | */ 45 | public int window_y { get; set; } 46 | 47 | /** 48 | * This property will represent the color of window 49 | * Variable of type {@code string} as declared. 50 | */ 51 | public string color { get; set; } 52 | 53 | /** 54 | * Constructs a new {@code Settings} object 55 | * and sets the default exit folder. 56 | */ 57 | private Settings () { 58 | base (Constants.ID); 59 | } 60 | 61 | /** 62 | * Returns a single instance of this class. 63 | * 64 | * @return {@code Settings} 65 | */ 66 | public static unowned Settings get_instance () { 67 | if (instance == null) { 68 | instance = new Settings (); 69 | } 70 | 71 | return instance; 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /src/views/TwelveGridView.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Carlos Lopez 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Affero General Public License as published 6 | * by the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Affero General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Affero General Public License 15 | * along with this program. If not, see . 16 | * 17 | */ 18 | using Gtk; 19 | 20 | namespace App.Views { 21 | /** 22 | * The {@code CalendarView} class. Show a grid 12x12 for months and years 23 | * 24 | * @since 1.0.0 25 | */ 26 | public class TwelveGridView : Gtk.Grid { 27 | private List